Estou a utilizar uma folha de estilo separada para a impressão. É possível definir a margem direita e esquerda na folha de estilo que define a margem de impressão (ou seja, margem sobre papel).
Obrigado.
Deve utilizar cm
ou mm
como unidade quando especificar para impressão. A utilização de pixels fará com que o navegador o traduza para algo semelhante ao que parece no ecrã. A utilização de cm
ou mm
irá assegurar um tamanho consistente no papel.
body
{
margin: 25mm 25mm 25mm 25mm;
}
Para tamanhos de fontes, utilizar pt
para os meios de comunicação impressos.
Note que a definição da margem no corpo em estilo css irá não ajustar a margem no driver da impressora que define a área de impressão da impressora, ou a margem controlada pelo browser (pode ser ajustável na pré-visualização da impressão em alguns browsers)... Apenas ajustará a margem no documento dentro da área de impressão.
Também deve estar ciente de que o IE7++ ajusta automaticamente o tamanho para o melhor ajuste, e faz com que tudo esteja errado mesmo que utilize cm
ou mm
. Para anular este comportamento, o utilizador deve seleccionar 'Print preview' e depois definir o tamanho de impressão para 100%
(o padrão é Shrink To Fit
).
Uma melhor opção para o controlo total das margens impressas é utilizar a directiva @página
para definir a margem em papel, o que afectará a margem em papel fora do elemento corpo html, que normalmente é controlada pelo navegador. Ver http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html.
Isto funciona actualmente em todos os principais navegadores excepto Safari.
No Internet Explorer, a margem é de facto definida para este valor nas definições para esta impressão, e se fizer Pré-visualização obterá isto como padrão, mas o utilizador pode alterá-lo na pré-visualização.
@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;
}
Resposta relacionada: Desactivar opções de impressão do browser (cabeçalhos, rodapés, margens) a partir da página?[2]
I'd sugere pessoalmente a utilização de uma unidade de medida diferente do px
. Eu não't penso que os pixels têm muita relevância em termos de impressão; idealmente, você'd utiliza:
I'certamente existem outros, e um excelente artigo sobre print-css pode ser encontrado aqui: Going to Print, por Eric Meyer.
Se souber o tamanho de papel de destino, pode colocar o seu conteúdo num DIV com esse tamanho específico e adicionar uma margem a esse DIV para simular a margem de impressão. Infelizmente, eu não'não acredito que tenha controlo extra sobre a funcionalidade de impressão para além de apenas mostrar a caixa de diálogo de impressão.