【问题标题】:How to replace Text in a PDF form field using PHP如何使用 PHP 替换 PDF 表单域中的文本
【发布时间】:2012-05-27 16:45:30
【问题描述】:

我花了大约 3 个小时寻找解决问题的方法。我已经浏览了有关我的问题的 stackoverflow 问题,但找不到解决方案。

我目前正在尝试使用 PHP 替换 PDF 表单字段中的文本。 PDF 文件有一个文本字段,其中包含 [placeholder] 之类的占位符文本。

我尝试做的是:

$pdf_content = file_get_contents(source_pdf.pdf);
$put = str_replace('[placeholder]', 'NEW VALUE', $pdf_content);
file_put_contents('temp_pdf/test.pdf', $put);

当我打开 PDF 时,占位符似乎没有被替换。但是,如果我点击文本字段,我的“新值”就会出现。如果我再次点击“[占位符]”,则再次分配。

因此,我认为这不是我的目的的正确尝试。

我现在的问题是:有没有一种简单有效的方法来实现这一点? 我不想使用 FDF,而是直接替换源 PDF 中的文本。

【问题讨论】:

  • 那将是非常聪明的解决方案。故事的结局如何?您是否实现了在 PDF 中编辑文本?

标签: php pdf


【解决方案1】:

只要我知道这并不简单。最好的解决方案是将 PDF 文档作为 HTML 模板提供给您,您可以使用诸如 TCPDF (http://www.tcpdf.org/) 之类的库轻松将其转换为 PDF。

我搜索并发现了 2 个类似的问题,并且有一些您可能想要查看的答案。他们确实提供了一些工具,但肯定不在 PHP 中。

Programatically find and replace text in pdf

Programmatically replace text in PDF

如果您有一组固定的模板并且每次您要使用新值更新它,HTML 模板到 PDF 的转换将是最佳选择。但是,如果您有不同的模板(表单)需要替换值,那么您应该要求供应商提供某种格式,如果可能的话,您可以轻松地以编程方式处理。

【讨论】:

  • 你好达马维尔。不幸的是,这个解决方案不适合我。客户可以上传自己的 pdf。要将文本替换为脚本,他们只需将 [占位符] 放入他们想要处理的每个 PDF 文件中。所以很遗憾没有固定的模板
  • 好的,我明白了。你能让他们上传任何其他格式的文件吗?如果可能的话。
  • 不幸的是,这仅限于 pdf 文件。这是我的公司希望我制作的工具,这些是限制。
  • 我认为您需要的是一个 PDF 解析器,即a tricky enterprise。我同意 Dharmavir,您的输入格式可能需要更改。我注意到您说“这些是限制”-显然我不详细了解您的具体用例-但有时企业中的人们要求一种不可能或笨拙的技术解决方案,这取决于开发人员引导他们采用更好/可行的方法。
  • 您可以在 acrobat 中将其设为可填写的 PDF 表单,然后使用 pdftk 将其展平
【解决方案2】:

这并不像你想的那么简单。如果您有 php 版本 7 或 5,这可以通过 pdftron 库实现。

要安装 pdftron 库,您必须安装 swig 和 cmake。

⚠️严格的 PHP 和 SWIG 版本兼容性

带有开发者扩展的 PHP7 和 SWIG 3.0.12

带有开发者扩展的 PHP5 和 SWIG 2.0.4 - 2.0.12

CMake版本≥2.8

这是一个替换 pdf 文本的示例。 https://www.pdftron.com/documentation/samples/php/ContentReplacerTest

正确安装,否则将无法正常工作

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2019-02-20
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多