0

在尝试寻找合并现有 PDF 文件和表单的方法时,我遇到了 Sid Steward 的PDFTK,然后找到了 Andrew Heiss 的 PDFTK-php 类(code.google.com/p/pdftk-php/;www.andrewheiss.com/博客/2009/07/29/installing-pdftk-php/)。这个想法看起来很简单,但是当我在我的 Windows 2003 Server 和我的 Windows XP 虚拟 PC 上尝试它时,我在尝试使用 FDF 生成的表单 Andrew 的示例代码来填充表单时遇到了同样的错误。我继续更改了 Andrew 的代码以查看它正在运行的命令行。然后将其键入命令提示符窗口以查看错误。

命令行如下所示: pdftk example.pdf fill_form fdf1b44.tmp output test.pdf flatten (PDFTK 在我的系统路径中,所有其他文件都位于当前目录中) example.pdf 生成为 0KB 文件,并且弹出一个错误:

未处理的 Java 异常:

java.io.CharConversionException
 at 0x0056175e (Unknown Source)
 at 0x00561c52 (Unknown Source)
 at 0x00561d03 (Unknown Source)
 at 0x0057692d (Unknown Source)
 at 0x0055f64d (Unknown Source)
 at 0x006bc0ad (Unknown Source)
 at 0x006994e0 (Unknown Source)
 at 0x00567a96 (Unknown Source)
 at 0x0056e8f2 (Unknown Source)
 at 0x0056e92c (Unknown Source)
 at 0x00445fa6 (Unknown Source)
 at 0x0048b15e (Unknown Source)
 at 0x0048b5b8 (Unknown Source)
 at 0x0048c238 (Unknown Source)
 at 0x0046c81f (Unknown Source)
 at 0x00469301 (Unknown Source)
 at 0x004666a6 (Unknown Source)

对于 Windows XP 虚拟 PC 和 Windows 2003 Server,结果是相同的。我在这个问题上发现的很少,只有一个条目可能表明 Sid 使用了一个 gcc 版本来编译 pdftk,它对 Java 字符的支持很差。我下载了 Sid 的源文件来看看,但这确实超出了我的知识范围。

4

3 回答 3

1

Adam De Fouw 在 Andrew 的网站上找到了答案。显然,可供下载的 PDFTK-PHP 副本具有 example.pdf 文件的损坏版本。所以我不是唯一一个拍着额头试图弄清楚的人。请参阅下面的亚当的回答(http://www.andrewheiss.com/blog/2009/07/29/installing-pdftk-php/):

Adam De Fouw 2010 年 5 月 10 日晚上 10:24 回复 Josh

http://pdftk-php.andrewheiss.com/example/exampl ...

使用 Andrew 网站上的 example.pdf 而不是 GitHub 上的版本。在过去的 2 个小时里,我一直在拔头发,试图弄清楚为什么它不起作用。事实证明,嵌入式 Mac 字体是我的克星,正如 Andrew 所暗示的那样。

使用那个 PDF,它应该适合你。

于 2010-08-24T21:23:58.913 回答
1

谢谢 Arachnid,你让我很开心。您的解决方案在我的 Windows XP 测试环境中非常适合我。这是 example.pdf 的完整链接,可点击:

http://pdftk-php.andrewheiss.com/example/example.pdf

我也将此作为问题添加到 pdftk-php github 页面。

于 2010-09-22T10:32:58.577 回答
0

我在使用 PDFtk 和我自己的 PHP 代码(不是 pdftk-php)进行 FDF/PDF 合并时遇到了同样的错误。我花了两天时间试图弄清楚。我修改了我的代码以一一合并字段并报告导致错误的特定字段 - 因为其中一些工作正常而另一些则没有。在检查了导致错误的字段和没有错误的字段之间的差异后,我意识到导致错误的字段被设置为 OpenSans 字体。有效的字段设置为 Times Roman。一旦我将所有字段更改为使用 Times Roman 而不是 OpenSans,PDFtk 就会退出抛出错误。我希望我这两天的头部撞击有一天能帮助某人。

于 2021-04-14T22:50:11.263 回答