Даже разрыв страницы для двусторонней печати в HTML и CSS - PullRequest
7 голосов
/ 22 ноября 2011

У меня работают разрывы страниц для печатных СМИ с быстрым page-break-after: always.Я использую их для разделения нескольких отчетов в одном пакетном задании на печать.К сожалению, когда задание на печать выполняется с двух сторон, разрыв страницы может привести к тому, что принтер запустит отчет на обратной стороне предыдущего отчета.

Есть ли способ принудительно разорвать страницу на четную страницу?Или, альтернативно, определить, на каком номере страницы будет отображаться определенный элемент?

Ответы [ 2 ]

7 голосов
/ 01 ноября 2012

В стандарте есть функциональность CSS. Ты на правильном пути. Использование:

<div style="page-break-after: right">
-- your content --
</div>

В настоящее время проблема заключается в том, что единственным крупным браузером, поддерживающим это, является Opera. Хотя у Opera есть свои причудливые проблемы с печатью, но это может работать в вашей ситуации.

1 голос
/ 25 ноября 2011

Для этого в CSS нет встроенных функций.

Идея:
Возможно, вы можете попробовать обернуть каждый из ваших отчетов в div, а затем использовать что-то вроде jquery для определения height div, чтобы выяснить, заканчивается ли оно на нечетной странице.

Если он заканчивается на нечетной странице, вставьте пустой div с вашим классом разрыва страницы после этого, чтобы он перешел на следующую страницу.

EDIT
Очевидно, что это действительно будет работать, только если вы знаете dpi, при котором ваша страница печатается на целевом принтере Там нет волшебного ответа, который будет работать только для всех сценариев.

  • 72 точек на дюйм (сеть) = 595 X 842 пикселей
  • 300 точек на дюйм (печать) = 2480 X 3508 пикселей («210 мм x 297 мм при 300 dpi»)
  • 600 точек на дюйм (печать) = 4960 X 7016 пикселей

Вам нужно немного поэкспериментировать со стандартными настройками принтера, чтобы увидеть, что работает для вас / ваших клиентов. Если существует несколько сценариев, вы можете выбрать их из выпадающего списка.

Таким образом, вы будете использовать jquery, чтобы проверить высоту пикселя элемента div, сравнить его с высотой пикселя страницы, чтобы увидеть, заканчивается ли раздел на нечетной или четной странице, - а затем вставить разрыв страницы, если отчет заканчивается нечетная страница.

Вам также необходимо заранее знать, будет ли пользователь использовать двустороннюю печать, поскольку это необходимо сделать только для двусторонней печати. ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...