Я использую отдельный стиль для печати. Можно ли установить правое и левое поля в таблице стилей, которые задают край печати (т.е. Маржа на бумаге).
Спасибо.
Я использую отдельный стиль для печати. Можно ли установить правое и левое поля в таблице стилей, которые задают край печати (т.е. Маржа на бумаге).
Спасибо.
Вы должны использовать cm
или mm
как единицу, если вы укажете для печати. Использование пикселей приведет к тому, что браузер переведет его на нечто похожее на то, как он выглядит на экране. Использование cm
или mm
обеспечит согласованный размер бумаги.
body
{
margin: 25mm 25mm 25mm 25mm;
}
Для размеров шрифтов используйте pt
для печатного носителя.
Обратите внимание, что установка поля на куске в стиле css будет не регулировать маржу в драйвере принтера, который определяет область печати на принтере, или маржу, контролируемую браузером (может регулироваться в предварительный просмотр в некоторых браузерах)... Он просто установит маркер в документе внутри области печати.
Вы также должны знать, что IE7 ++ автоматически настраивает размер, который лучше всего подходит, и вызывает все неправильное, даже если вы используете cm
или mm
. Чтобы отменить это поведение, пользователь должен выбрать "Предварительный просмотр печати", а затем установить размер печати 100%
(по умолчанию - Shrink To Fit
).
Лучшим вариантом полного контроля над печатными полями является использование директивы @page
для установки поля бумаги, что повлияет на маржу на бумаге вне элемента тела html, который обычно контролируется браузером. См. http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html.
В настоящее время это работает во всех основных браузерах, кроме Safari.
В Internet explorer значение по умолчанию для этого значения задано в настройках этой печати, и если вы сделаете предварительный просмотр, вы получите это как значение по умолчанию, но пользователь может изменить его в предварительном просмотре.
@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;
}
Связанный ответ: Отключение параметров печати браузера (верхние и нижние колонтитулы, поля) со страницы?
Я лично предложил бы использовать другую единицу измерения, чем px
. Я не думаю, что пиксели имеют большое значение с точки зрения печати; в идеале вы будете использовать:
Я уверен, что есть другие, и одна отличная статья о print-css можно найти здесь: Переход к печати, Эрик Майер.
Обновлено, простое решение
@media print {
body {
display: table;
table-layout: fixed;
padding-top: 2.5cm;
padding-bottom: 2.5cm;
height: auto;
}
}
Старое решение
Создайте раздел с каждой страницей и используйте приведенный ниже код для настройки полей, высоты и ширины.
Если вы печатаете размер A4.
Затем пользователь
Размер: 8.27in и 11.69 дюймов
@page Section1 {
size: 8.27in 11.69in;
margin: .5in .5in .5in .5in;
mso-header-margin: .5in;
mso-footer-margin: .5in;
mso-paper-source: 0;
}
div.Section1 {
page: Section1;
}
затем создайте div со всем содержимым.
<div class="Section1">
type your content here...
</div>
Я также рекомендую pt против cm или mm, насколько это более точно. Кроме того, я не могу заставить @page работать в Chrome (версия 30.0.1599.69 м). Он игнорирует все, что я помещаю для полей, больших или малых. Но вы можете заставить его работать с полями тела на документе, странно.
Если вы знаете размер целевой бумаги, вы можете разместить свой контент в DIV с указанным размером и добавить маржу к этому DIV для имитации поля печати. К сожалению, я не верю, что у вас есть дополнительный контроль над функциями печати, кроме как просто показать диалоговое окно печати.