使用PDFTK(或php / javabridge)填写PDF表单,忽略某些Unicode字符。

6

相关问题1相关问题2

我们想要实现的目标:
使用Drupal网站表单提交数据作为源来填充PDF表单并提供给用户,以便打印。我们正在尝试在Drupal 6上部署此功能,并将其移植到Drupal 7。该网站是一个部署在CentOS VPS上的大型D6网站。

链接:

我们的问题:
无论我们尝试什么,都无法将某些Unicode(utf-8)字符插入PDF中。
具体来说,这些不起作用:č, đ, ć
这些可以工作:š, ž
注意:这必须起作用,因为这些字符在斯洛文尼亚人的名字和姓氏中很常见,而此PDF是斯洛文尼亚合同的打印输出。

我们尝试了什么:
我们首先使用了我们的系统管理员从源代码构建的PDFTK。我们尝试了1.41和1.41版本。他之后找到了一个两个版本的软件包,我们测试了两个版本,但都没有起作用。然后我们分析了模块并使用了相同的命令行函数进行了简化示例测试。它产生了相同的结果。我们尝试了在Mac上生成的PDF,该PDF是从DOC转换而来,然后使用Adobe Acrobat Pro添加了字段。然后我们尝试了在Linux Mint上使用LibreOffice创建的PDF。两者都产生了相同的结果。这个问题已经在CentOS vps、CentOS虚拟盒安装、ubuntu 10.04 devbox以及2个D6 vanilla安装、1个D7 vanilla安装和生产D6安装中复制。我们还尝试了fillpdf模块提供的第二个选项:java/tomcat bridge (更多信息)。这在ubuntu 10.04 devbox上尝试过,但也没有起作用。我们还尝试了提供的软件即服务PDFTK服务FillPDF服务,其也产生了相同的结果。

有什么想法可能出了问题吗?有没有任何想法如何完成这个任务(即使用其他系统、服务、自定义代码等)?


Putr,当您说Tomcat安装“没有工作”时,您是指您在配置方面遇到了麻烦还是它填充了PDF但无法成功填充这些字符? - wizonesolutions
这个答案似乎是一个很大的提示:https://dev59.com/kG865IYBdhLWcg3wIa7M#6926874 - 在XFDF文件中使用Unicode字符引用对字符进行HTML编码似乎是正确的方法。我会在模块中做个笔记,稍后再来看看它。这很棘手,因为它似乎可以在pdftk中工作,但不确定它如何在JavaBridge方面发挥作用。 - wizonesolutions
@wizonesolutions Tomcat的设置已经生效(至少在PDF生成方面),但是我们仍然遇到了Unicode字符的相同问题。 - Putr
似乎是Tomcat/Java字体问题。一位中国用户设法添加了中文字体并使整个系统正常工作。我将在某个时候仔细阅读他所做的事情,并更新文档(并进行更多测试)。 - wizonesolutions
1个回答

1

请尝试使用:http://sourceforge.net/projects/pdfformfiller2/files/

安装步骤如下:

Fillpdf:

drush dl fillpdf
drush en fillpdf

网络表单:

drush dl webform
drush en webform

Web表单令牌:

drush dl webform_tokens
drush en webform_tokens

PDF表单填充工具2:

itext-xtra-5.2.0.jar 0060b17c2ca9ee33a39806a8bad461e2

itextpdf-5.2.0.jar   ea0173384c42986e269da4fb67d0a391

pdfformfiller.jar    9109ecb8f887ea40719480134ed73ddd

pdf_filler.sh

您还需要在服务器上安装以下Java包:
giflib-4.1.3-7.3.3.el5.i386.rpm

java-1.6.0-openjdk-1.6.0.0-1.27.1.10.8.el5_8.i386.rpm

tzdata-java-2012c-1.el5.i386.rpm

chmod +x pdf_filler.sh

pdf_filler.sh should be in $PATH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接