【问题标题】:Using Sid Steward's PDFTK in Windows receiving a Unhandled Java Exception: java.io.CharConversionException在 Windows 中使用 Sid Steward 的 PDFTK 接收未处理的 Java 异常:java.io.CharConversionException
【发布时间】:2011-04-03 06:13:07
【问题描述】:

在尝试找到合并现有 PDF 文件和表单的方法时,我遇到了 Sid Steward 的 PDFTK,然后找到了 Andrew Heiss 的 PDFTK-php 类 (code.google.com/p/pdftk-php/; www .andrewheiss.com/blog/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 虚拟电脑和 Windows 2003 Server 的结果相同。我在这个问题上发现的很少,只有一个条目可能表明 Sid 使用了一个 gcc 版本来编译 pdftk,它对 Java 字符的支持很差。我下载了 Sid 的源文件来看看,但确实超出了我的知识范围。

【问题讨论】:

  • 使用 PDFTK 将 example.pdf 合并到另外两个 PDF 文件中,它在生成最终合并文件时工作得非常好。因此,Andrew 的 PHP 类使用我的系统设置生成 FDF 的方式一定有问题。我将查看有关 FDF 文件格式以及文件是否损坏的信息。
  • 好的,我的一个旧项目使用了 Adob​​e FDF Toolkit 和一个模板 PDF 文件。我使用 ASP 和 ASP.NET 对其进行了编码,并试图使用 Adob​​e FDF Toolkit 来生成 FDF。但我决定使用 Adob​​e FDF Toolkit 检查并保存 FDF,然后使用 PDFTK 将其加载到 PDF 中,以生成文档的扁平版本,并填写表单字段。 objFdf.FDFSaveToFile "d:\Temp\test.fdf" 然后在 PDFTK 命令行中使用该文件: pdftk template.pdf fill_form test.fdf output output.pdf flatten
  • Wallah 命令行正常工作,PDF 被填写并展平。所以我想我的问题在于用于处理 PDFTK 的 Andrew 的 PHP 类 (PDFTK-PHP) 生成 FDF 文件的方式。在 Notepad++ 中查看 FDF,他生成的 FDF 与 Adob​​e FDF Toolkit 中的 FDF 看起来非常相似。

标签: pdftk


【解决方案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,它应该适合您。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多