Estoy usando una hoja de estilo separada para imprimir. ¿Es posible establecer el margen derecho e izquierdo en la hoja de estilo que establece el margen de impresión (es decir, margen en papel).
Gracias.
fuente
Estoy usando una hoja de estilo separada para imprimir. ¿Es posible establecer el margen derecho e izquierdo en la hoja de estilo que establece el margen de impresión (es decir, margen en papel).
Gracias.
Debe usar cm
o mm
como unidad cuando especifique para imprimir. El uso de píxeles hará que el navegador lo traduzca a algo similar a lo que se ve en la pantalla. Usar cm
o mm
garantizará un tamaño uniforme en el papel.
body
{
margin: 25mm 25mm 25mm 25mm;
}
Para tamaños de fuente, use pt
para los medios impresos.
Tenga en cuenta que establecer el margen en el cuerpo en estilo CSS no ajustará el margen en el controlador de la impresora que define el área imprimible de la impresora, o el margen controlado por el navegador (puede ser ajustable en la vista previa de impresión en algunos navegadores) ... solo establecerá el margen en el documento dentro del área imprimible.
También debe tener en cuenta que IE7 ++ ajusta automáticamente el tamaño para que se ajuste mejor y hace que todo esté mal incluso si usa cm
o mm
. Para anular este comportamiento, el usuario debe seleccionar 'Vista previa de impresión' y luego establecer el tamaño de impresión en 100%
(el valor predeterminado es Shrink To Fit
).
Una mejor opción para un control total sobre los márgenes impresos es usar la @page
directiva para establecer el margen del papel, lo que afectará el margen en el papel fuera del elemento del cuerpo html, que normalmente es controlado por el navegador. Ver http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html .
Esto funciona actualmente en todos los principales navegadores, excepto Safari.
En Internet Explorer, el margen se establece realmente en este valor en la configuración de esta impresión, y si realiza la Vista previa, obtendrá esto como predeterminado, pero el usuario puede cambiarlo en la vista previa.
@page
{
size: auto; /* auto is the initial value */
/* this affects the margin in the printer settings */
margin: 25mm 25mm 25mm 25mm;
}
body
{
/* this affects the margin on the content before sending to printer */
margin: 0px;
}
Respuesta relacionada: ¿ Deshabilitar las opciones de impresión del navegador (encabezados, pies de página, márgenes) desde la página?
<body class="firefox">
por lo que en su CSS puede hacerlobody.firefox {margin: 0mm; padding: 0.25in;}
, que en realidad es un margen de 0.75 pulgadas porque Firefox ya agrega 0.5in. Esto debería funcionar siempre que necesite> = márgenes de 0,5 pulgadas.En primer lugar, trato de obligar a todos mis usuarios a usar Chrome cuando imprimen porque otros navegadores crean diseños diferentes.
Una respuesta de esta pregunta recomienda:
Sin embargo, terminé usando este CSS para imprimir todas mis páginas:
Caso especial: mesas largas
Cuando necesitaba imprimir una tabla en varias páginas,
margin:0
el resultado@page
era un borde sangrante:Podría resolver esto gracias a esta respuesta con:
Además de configurar los márgenes superior-inferior para
@page
:Resultado:
Prefiero una solución concisa y que funcione con todos los navegadores. Por ahora, espero que la información anterior pueda ayudar a algunos desarrolladores con problemas similares.
fuente
Solución simple y actualizada
Antigua solución
Cree una sección con cada página y use el siguiente código para ajustar los márgenes, la altura y el ancho.
Si está imprimiendo en tamaño A4.
Entonces usuario
Tamaño: 8.27in y 11.69 pulgadas
luego crea un div con todo tu contenido.
fuente
class=Section1
debería serclass="Section1"
.Yo personalmente sugeriría usar una unidad de medida diferente a
px
. No creo que los píxeles tengan mucha relevancia en términos de impresión; idealmente usarías:Estoy seguro de que hay otros, y un excelente artículo sobre print-css se puede encontrar aquí: Going to Print , de Eric Meyer .
fuente
px
no tiene mucha relevancia para imprimir. Pero los navegadores "traducen" las unidades de píxeles para que se parezca a cómo se ve en la pantalla. No , no use los "puntos de resolución de la impresora" como píxeles (gracias a Dios ...).También recomiendo pt versus cm o mm, ya que es más preciso. Además, no puedo hacer que @page funcione en Chrome (versión 30.0.1599.69 m). Ignora todo lo que puse para los márgenes, grandes o pequeños. Pero, puede hacer que funcione con márgenes corporales en el documento, extraño.
fuente
Si conoce el tamaño de papel de destino, puede colocar su contenido en un DIV con ese tamaño específico y agregar un margen a ese DIV para simular el margen de impresión. Desafortunadamente, no creo que tenga un control adicional sobre la funcionalidad de impresión, aparte de mostrar el cuadro de diálogo de impresión.
fuente