如何使用 PHP 替换 PDF 表单字段中的文本


How to replace Text in a PDF form field using PHP

我搜索了大约 3 个小时来找到解决问题的方法。我已经浏览了有关我问题的堆栈溢出问题,但找不到解决方案。

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

我试图做的是:

$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文档作为HTML模板提供给您,您可以使用TCPDF(http://www.tcpdf.org/)等库轻松转换为PDF。

我搜索了一下,发现了 2 个类似的问题,有一些您可能想复习的回答。他们确实提供了一些工具,但肯定不是PHP中的工具。

以编程方式查找和替换 pdf 中的文本

以编程方式替换 PDF 中的文本

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

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

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

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

带有开发人员扩展和 SWIG 3.0.12 的 PHP7

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

CMake 版本 ≥ 2.8

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

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