【问题标题】:Replace part of PDF with PHP用 PHP 替换部分 PDF
【发布时间】:2011-07-14 22:09:58
【问题描述】:

我正在研究用 PHP 构建发票和订单凭证生成器的选项。我之前用 FPDF 和 TCPDF 为其他场合创建了几个 PDF,它们都工作得很好,但是太冗长了,我已经厌倦了。

我觉得用任何编程语言生成 PDF 都非常冗长。

有什么方法可以使用 Adob​​e Acrobat 生成 PDF 蓝图并将其用作具有可变字段/区域的模板?这样我就可以让设计师在这里为我创建一个信头和整体发票主题,我只会将可变部分的内容(订单行、总计、到期日、买家详细信息)写入 pdf。

简单地说,一个准系统模板系统,它读取一个 pdf 并在变量替换后再次输出。

【问题讨论】:

    标签: php pdf


    【解决方案1】:

    听起来你想要表单域。 PDF中有两种形式:

    AcroForms:使用最初内置于 Acrobat 4.x 和 5 中的技术创建的表单。在此过程中它已经进行了相当多的扩展。许多软件可以读写基于 AcroForm 的 PDF。

    XFA:新热点。 Adobe LiveCycle Designer(与 Acrobat Pro 一起提供)可以为您构建一些非常漂亮的表单,这些表单只能用几个库来处理……主要是 Adob​​e 自己的。 Adobe 的服务器产品并不便宜

    您的 PDF 库 du jur 还可以让您从现有 PDF 导入页面。您可以在任何您喜欢的应用程序中构建您的 PDF“样板”,导出为 PDF,然后使用您的 PDF 库在其上绘制。这让你可以绘制任何你想要的东西,而不仅仅是让你显示的字段(线条艺术、图像、文本,而不是大部分只是文本)。


    还有很多 HTML->PDF 库随处可见。如果您觉得走这条路更舒服,您可以用 HTML 构建您的报告,然后将它们转换为 PDF。有些人比其他人更擅长它,而且我所知道的只有一个会考虑 HTML 脚本(wkhtmltopdf)。

    【讨论】:

      【解决方案2】:

      以某种元语言(例如 FPDF)保存模板并生成文档以处理二进制流和 PDF 中的单独字形要简单得多。 由于 /dev/null 存在,冗长应该不是问题。

      【讨论】:

        【解决方案3】:

        您可以使用免费的 Zend PDF 模块:http://framework.zend.com/manual/en/zend.pdf.html

        有关编辑现有文件或创建占位符以使用 PHP 换出的问题,请参阅此问题:PDF Editing in PHP?

        您可以使用 FPDF 来创建新的 PDF 文件,尽管它有缺陷(但创建内容非常快:http://www.fpdf.org/

        【讨论】:

          【解决方案4】:

          您可以使用表单域创建 PDF 并替换源中这些域的内容。但是,您必须替换确切数量的字符,否则 PDF 可能会损坏。在您的情况下,您想添加整个表,这可能不可行。

          我们做了一些非常相似的事情,但使用了不同的方法。使用http://www.setasign.de/products/pdf-php-solutions/fpdi/,我们加载了 PDF,并将我们想要的内容放在最上面(FPDI 扩展了 TCPDF 或 FPDF)。

          【讨论】:

          • FPDI 几乎是使用以前的 PDF 模板和注释的唯一不错的解决方案。就个人而言,我认为 TCPDF 更适合扩展。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-26
          相关资源
          最近更新 更多