7

我有一张 html 格式的发票,可以很好地显示在屏幕上。我想把它打印到预先格式化的纸上。论文分为三个部分

页眉(距页面顶部的固定高度)

正文(由 1 - N 行组成的表格)

页脚(距页面底部的固定高度)

我尝试使用 CSS 并使用 #InvFooter 和 CSS 创建 div

<link rel="stylesheet" href="print.css" type="text/css" media="print" />
@page { size:8.5in 11in; margin: 2cm }


#InvFooter {position:absolute;left:50px;bottom:0px;} 

我有两个问题我无法弄清楚。

  1. 如何将页脚锚定到打印页面的底部。
  2. 如果表格的行数过多,如何将正文限制在页面的固定部分并溢出到另一个页面。
4

2 回答 2

2

简单的回答:不要,html/css 从未用于打印。即使您可以“破解”绝对尺寸以适合您当前的打印机,也不能保证它们会适合下一个(或客户的)。

出于这个原因,发明了 PDF,以提供您所期望的打印格式(以及高便携性)。

通过使用 PDF,您可以保证获得固定的(纸张)尺寸。

您将能够找到免费的 pdf 解决方案(开源)以及商业解决方案(例如Dynamic PDF - 还有许多其他解决方案),它们允许您从 .Net 动态/从基于服务器的动态生成 PDF不依赖 Adob​​e 产品的应用程序。

于 2012-12-27T03:26:51.873 回答
0

这是我遇到的最好的 CSS 打印技术汇编。它具有 W3 标准的深度链接、优秀的示例、第 3 方推荐的 HTML -> PDF 软件和一个方便的 JPEG,它显示了 16 个不同的页边距选择器。它让我开始了,现在我可以打印 100 多个不同长度的项目摘要,以供执行审查。

  1. 文章: https ://www.smashingmagazine.com/2015/01/designing-for-print-with-css/

  2. 方便的页边距 JPEG: https ://media-mediatemple.netdna-ssl.com/wp-content/uploads/2014/12/1-image-margin-boxes-large-opt.jpg

  3. 演示 HTML 书: https ://github.com/rachelandrew/css-for-print/blob/master/book.html

  4. 演示打印 CSS: https ://github.com/rachelandrew/css-for-print/blob/master/pdf-styles.css

希望这可以帮助!

编辑这些可能是您正在寻找的:

.invoice {
   page-break-before: always;
}

.invoice h1.title {
   page-break-after: avoid;
}

.invoice .line-item {
   page-break-inside: avoid;
   page-break-after: auto;
}

编辑格式化的纸张如何容纳多页发票?您必须单独打印每张发票......呃

于 2016-05-26T03:53:14.703 回答