使用 fpdm 填充字段(不使用 PDFtk)后,PHP 压平 PDF 表单

我见过很多问题相同的问题,但大多数解决方案仍然以安装 PDFtk 结束,否则它们不需要拼合功能。可悲的是不适合我。


问题

我使用fpdm创建了一个自动填写的 PDF 表单。

问题是,如果在浏览器 PDF 查看器(在所有测试的浏览器上)中打开并打印 PDF,则复选框中的值不会显示。由于下载此 PDF 的是用户,因此无论在哪个程序中查看 PDF,这些值都应该可见。

所以我的想法是压平PDF,但fpdm需要PDFtk来压平PDF,而PDFtk无法安装在服务器上。

另外,由于我们使用 TYPO3 CMS,我想避免添加完整的框架(例如 zend-framework)。

我尝试使用graphicsMagick压平PDF,但首先质量非常差,其次使用PHP中的以下命令丢失了两页之一:

shell_exec('gm -flatten form.pdf form.pdf')

我只需要更改 gm 命令吗?如果是的话,怎么会这样呢?

如果 GM 不起作用,是否有人知道一个开源/免费的解决方案来压平 PDF 表单?

在此先感谢您的帮助。


更新

我找到了一个用 GraphicsMagick 拼合 PDF 的命令,它看起来比我上次尝试的要好得多:

shell_exec('gm convert -density 300 ' . $tmpFile . ' +adjoin -append -flatten ' . $PDFFile);

它仍然不完美,因为字体更改为展平之前使用的字体,但也许我也会找到解决方案。但与我上次的尝试相反,没有一页丢失。

然而,我仍然想知道 PDFtk 是否是唯一一个免费的 PHP 兼容工具来填充和展平 PDF 表单(忽略最终依赖于 PDFtk 的所有工具)?


大话西游666
浏览 98回答 1
1回答

阿晨1998

我们没有使用graphicsMagick来压平pdf,而是偶然发现了pdftocairo。然后,以下命令会展平 pdf,而不更改字体和对梳状字段的支持(graphicsMagick 和 GhostScript 都不支持):shell_exec("pdftocairo -pdf $tmpFile $PDFFile");因此,如果有人需要在 Ubuntu 18.04 服务器上压平 PDF,则可以在其上安装与 PDFtk 相反的 pdftocairo,无需额外的软件包,并且可以满足我的需要。它还具有更多与 PDF 相关的功能,可能与 PDFtk 相当。
打开App,查看更多内容
随时随地看视频慕课网APP