【问题标题】:formatting html for printing with page numbers格式化 html 以使用页码打印
【发布时间】:2017-02-20 22:18:59
【问题描述】:

这是基本问题……

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

这是背后的故事……

我在一家技术含量低的建筑公司的附属办公室工作,该公司向分包商签发合同,因为我是唯一能够解除打印机堵塞的人,所以我已成为该公司事实上的 IT 人员。过去,要签订合同,有人必须通过 MS Word 文档(样板合同)并输入必要的信息来生成合同。

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

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

我已经使用 XAMPP 将一台计算机转换为用于开发目的的服务器,创建了一个 SQL 数据库,创建了 HTML 表单,并且正在使用 PHP 来运行查询。在过去的几个月里,我已经通过包括 CSS 在内的无数语言进行了速成课程,并最终掌握了所有内容,系统将创建一个包含所有内容的 HTML 版本的合同。现在我只需要将其格式化为带有页眉和页脚(页码)的打印(最好是虚拟 PDF 打印机)。这应该是最简单的部分了吧?

带有@media: print 标签的CSS,从表面上看,似乎是实现这一目标的最佳方式,因为CSS3 使用像“@top-left”和“content:counter(page)”这样的标签来做所有事情我想要的;但是,在投入大量时间设置所有内容之后,似乎只有 Foxfire 类型支持此功能,而 IE 和 Chrome 绝对不支持。

页眉和页脚与正文内容重叠,我根本无法让分页工作。显然,这些都是常见的挫败感。

在我的狩猎过程中,我遇到了一个名为 Prince 的程序,它似乎可以做我想做的事(而且做得更多),但它的价格远远超过我愿意支付的价格。

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

【问题讨论】:

    标签: css printing html2pdf


    【解决方案1】:

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

    http://pdf-php.sourceforge.net/

    上手可能需要一点时间,但您几乎可以用它做任何事情,包括轻松创建格式良好的表格、流畅的文本和嵌入的图像。问题是,除了像 这样的一些标签之外,您不会使用任何 HTML 或 CSS - 基本上您编写了两个输出例程,一个用于 HTML一个用于 PDF。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 2011-04-25
      • 2016-02-25
      • 2015-01-30
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      相关资源
      最近更新 更多