Css 格式化html以使用页码打印

Css 格式化html以使用页码打印,css,printing,html2pdf,Css,Printing,Html2pdf,这是一个基本问题 我有一个很长的HTML文档(100多页的合同),最终需要一个带有页眉和页脚(页码)的PDF文档。实现这一目标的最佳工具/语言是什么 这是背景故事 我在一家低技术建筑公司的卫星办公室工作,该公司向分包商签发合同,因为我是唯一一个能够取消打印机的人,我已经成为该公司的实际IT人员。在过去,为了签订合同,有人必须通过MS Word文档(锅炉板合同)并输入必要的信息才能签订合同 大约一年前,我对这种方法感到非常失望,于是我创建了一个MS Access数据库,用户可以使用Access表单

这是一个基本问题

我有一个很长的HTML文档(100多页的合同),最终需要一个带有页眉和页脚(页码)的PDF文档。实现这一目标的最佳工具/语言是什么

这是背景故事

我在一家低技术建筑公司的卫星办公室工作,该公司向分包商签发合同,因为我是唯一一个能够取消打印机的人,我已经成为该公司的实际IT人员。在过去,为了签订合同,有人必须通过MS Word文档(锅炉板合同)并输入必要的信息才能签订合同

大约一年前,我对这种方法感到非常失望,于是我创建了一个MS Access数据库,用户可以使用Access表单添加信息,然后将邮件与MS Word合并以填充合同。这是一个巨大的改进,加上我们已经能够使用其他数据库功能更轻松地开始跟踪资金。数据库存储在卫星办公室的共享计算机上。但是,仅当个人用户在其个人计算机上安装了MS Access和MS Word,并且仅当他们物理连接到我们的本地网络时,此系统才起作用

随着该系统在卫星办公室的成功应用,我现在正尝试创建一个基于网络的工具版本,公司中的每个人都可以使用该工具,该工具仅依赖于单个机器上的标准软件,并且可以在任何地方访问

我已经使用XAMPP将一台计算机转换成一台服务器用于开发目的,创建了一个SQL数据库,创建了HTML表单,并且正在使用PHP运行查询。在过去的几个月里,我通过各种语言(包括CSS)快速浏览了一遍,最终获得了所有信息,系统将创建一个包含所有信息的HTML版本的合同。现在,我只需要格式化它,以便打印(理想情况下,打印到一个虚拟的PDF打印机)带有页眉和页脚(页码)。这应该是最简单的部分,对吗

表面上看,带有@media:print标记的CSS似乎是实现这一点的最佳方式,因为CSS3使用诸如“@top left”和“content:counter(page)”之类的标记来完成我想要的一切;然而,在花了大量时间设置所有内容之后,似乎只有Foxfire支持这一点,IE和Chrome绝对不支持

页眉和页脚与正文内容重叠,我根本无法进行分页。显然,这些都是常见的挫折

在我打猎的过程中,我遇到了一个名为Prince的程序,它似乎可以做我想做的事情(甚至更多),但上面的价格标签远远超出了我的意愿


我不敢相信我想做的是一件新的或独特的事情。我怀疑我只是没有搜索正确的关键字。有没有更好的工具/技术可以将HTML转换为打印机友好的格式,而不必花很多钱?

我感觉到了你的痛苦。但我发现唯一有效的解决方案是使用PDF库直接从PHP(或Python或其他语言,但您提到了PHP,我已经这样做了)将格式化文本写入PDF。我经常使用R&O:

这可能需要一段时间才能跟上速度,但您可以用它做几乎任何事情,包括轻松创建格式良好的表格、流动文本和嵌入图像。问题是,除了一些标记,比如,和,你不能使用任何HTML或CSS,基本上你写了两个输出例程,一个用于HTML,一个用于PDF