7

我有一个生成长报告的 Web 应用程序,我需要打印它。如果我只是打印页面,它将在物理页面的末尾中断。如何计算在网页中的中断位置,以便页面在打印时与物理页面对齐?

4

5 回答 5

8

我们有一个系统可以打印出选定订单的发票,其中放置了一个

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

每张发票之间。这意味着每张发票都会进入一个新页面。

使用打印样式表也是一个好习惯

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

它可以隐藏/显示页面的相关区域。当有人想要实际页面内容时,没有必要打印出 leftnav 链接等。

于 2008-10-03T11:46:59.430 回答
6
于 2008-10-03T11:39:38.860 回答
2

我通常避免一起打印网页 (HTML)。如果需要格式化打印,我会生成 PDF 或 CSV/电子表格格式供我的客户以他们想要的任何方式打印。

我通常生成供全球使用的打印件,这意味着所有类型的设置都因工作场所而异(例如纸张尺寸:Legal、Letter、A4 等)。我发现这是一项太大的任务,无法保证任何地方的审美输出。

于 2008-10-03T11:41:42.373 回答
1

有一个 css 属性可以尝试确保分页符的位置。您可以为元素指定规则page-break-before: always或 page-break-after: always` 以指示中断应该在元素之前还是之后。这对跨浏览器的支持很差,我不会依赖它。有关详细信息,请参阅http://www.w3schools.com/CSS/pr_print_pageba.asp 。

于 2008-10-03T11:44:41.963 回答
0

要么使用 CSSpage-break-before/after

其他方法:

  • 使用JasperReports并将数据加载到报告中,而不是 html 页面
  • 使用带有 XSL 的Apache FOP将您的 HTML(或原始数据)转换为 FOP,然后再转换为 PDF

这两种方法都相当广泛,所以如果你不想花一些精力,最好直接跳到另一个答案....

于 2008-10-03T11:42:25.913 回答