2008-10-03 1 views
6

У меня есть веб-приложение, которое генерирует длинный отчет, и мне нужно его распечатать. Если я просто распечатаю страницу, она сломается в конце физической страницы. Как я могу рассчитать, где сделать перерыв на веб-странице, чтобы страница ломалась с физическими страницами при печати?Как создать веб-страницу для печати, чтобы она не сильно разбилась на страницы?

ответ

2

Обычно я избегаю печати на веб-странице (HTML). Если требуется форматированная печать, я создаю форматы PDF или CSV/Spreadsheet для моих клиентов, чтобы они печатались так, как они хотят.

Обычно я использую печать для глобального использования, что означает, что все типы настроек различаются (например, размер бумаги: Legal, Letter, A4 и т. Д.) С рабочего места на рабочее место. Я считаю, что это слишком большая задача, чтобы гарантировать эстетическую отдачу повсюду.

0

Либо с помощью CSS page-break-before/after

Другие способы:

  • использовать JasperReports и загружать данные в отчете, а не на HTML странице
  • использовать Apache FOP с XSL, чтобы перевести свой HTML (или исходные данные) в FOP, а затем в PDF

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

1

Существует свойство css, чтобы попытаться обеспечить положение разрывов страниц. Вы можете дать элементу правило page-break-before: always или page-break-after: always`, чтобы указать, должен ли разрыв быть до или после элемента. У этого есть довольно плохая поддержка в браузерах, и я бы не стал на это полагаться. См. http://www.w3schools.com/CSS/pr_print_pageba.asp для более подробной информации.

8

У нас есть система, которая печатает счета-фактуру для выбранных заказов, которые размещают

<br style="page-break-before:always;"> 

между каждой фактурой. Это означает, что каждый счет-фактура переходит на новую страницу.

Это также хорошая практика, чтобы использовать таблицу стилей для печати

<link rel="stylesheet" href="print.css" type="text/css" media="print" /> 

, которые могут скрыть/отобразить соответствующие области страницы. Нет смысла печатать левые ссылки и т. Д., Когда кто-то хочет фактическое содержимое страницы.

Смежные вопросы