在Windows中使用Sid Steward的PDFTK接收未处理的Java异常:java.io.CharConversionException

时间:2010-08-24 15:36:53

标签: pdftk

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

命令行如下所示: pdftk example.pdf fill_form fdf1b44.tmp输出test.pdf flatten (PDFTK在我的系统PATH中,所有其他文件都在当前目录中) 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的源文件来看看,但它确实超出了我的知识范围。

3 个答案:

答案 0 :(得分:1)

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

Adam De Fouw 05/10/2010 10:24 PM回复Josh

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

在Andrew的网站上使用此example.pdf而不是GitHub上的版本。过去2个小时我一直在拔头发,想弄清楚它为什么不起作用。原来,安德鲁暗示,嵌入式Mac字体是我的克星。

使用该PDF,它应该适合您。

答案 1 :(得分:1)

感谢Arachnid,你结识了我的一天。您的解决方案在我的Windows XP测试环境中完美适用于我。 以下是example.pdf的完整链接,可点击:

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

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

答案 2 :(得分:0)

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