【发布时间】:2021-01-01 01:15:45
【问题描述】:
我已经看到很多问题都是相同的,但大多数解决方案仍然以安装 PDFtk 结束,或者他们不需要 flatten 功能。可惜不适合我。
问题
使用fpdm,我创建了一个自动填充的 PDF 表单。
问题是,如果在浏览器 PDF 查看器(在所有测试的浏览器上)中打开并打印 PDF,复选框中的值不会显示。由于将由用户下载此 PDF,因此无论在哪个程序中查看 PDF,这些值都应该可见。
所以我的想法是展平 PDF,但 fpdm 需要 PDFtk 来展平无法安装在服务器上的 PDF。
由于我们使用的是 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 的所有工具)?
【问题讨论】:
-
我一直在使用 pdftk 来展平 pdf 文件,它很容易工作,使用 pdftk 中的展平选项 (pdflabs.com/docs/pdftk-man-page/#dest-output-flatten)。要填写表格,您需要生成 fdf 文件并使用该文件填写表格。在stackoverflow.com/a/63047502/6051682 上查看我的类似答案
-
如前所述,我们无法在我们的服务器上安装 pdftk,所以这绝对不是解决方案。特别是因为我已经在标题“NO PDFtk”中说明了这一点。因此,请停止提出提问者不想要的建议。