首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFtk的字体问题

PDFtk的字体问题
EN

Stack Overflow用户
提问于 2014-05-30 06:46:12
回答 2查看 7.2K关注 0票数 22

我在使用带有真正类型字体的文本字段使用pdftk填写表单时遇到了困难。

  • 字体文件(.ttf)被添加到/Library/字体(OSX )
  • 该表单是用创建的。
  • 表单包括使用这些字体的普通(非表单)文本。
  • 表单文本字段也使用以下字体
  • 该表单可以使用Acrobat甚至预览成功地填写和打印。

但是,当试图使用以下命令填充它时,pdftk会抛出一个错误:

代码语言:javascript
复制
pdftk ./my_form.pdf fill_form my_data.fdf output ./the_output.pdf

产出如下:

代码语言:javascript
复制
Unhandled Java Exception in create_output():
java.lang.ArrayIndexOutOfBoundsException: 0
   at pdftk.com.lowagie.text.pdf.DocumentFont.fillEncoding(pdftk)
   at pdftk.com.lowagie.text.pdf.DocumentFont.doType1TT(pdftk)
   at pdftk.com.lowagie.text.pdf.DocumentFont.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.AcroFields.getAppearance(pdftk)
   at pdftk.com.lowagie.text.pdf.AcroFields.setField(pdftk)
   at pdftk.com.lowagie.text.pdf.AcroFields.setFields(pdftk)

如果我将文本输入的字体更改为Helvetica、Times或Courier,pdftk将成功地创建一个PDF格式。奇怪的是,阿里尔和佐治亚也犯了同样的错误。

我试图使用Ghostscript将字体嵌入到PDF中,就像How to repair a PDF file and embed missing fonts在这个问题中建议的那样,但没有效果。gs可能嵌入了字体,但它删除了表单字段,因此生成的PDF不能反馈到pdftk中。

如能通过一项工作决议将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-06-08 18:20:10

我在使用java.lang.ArrayIndexOutOfBoundsException: 0填充生成的Acrobat上的表单时遇到了同样的pdftk错误。这个问题太老了,但我在堆栈溢出或其他地方找不到一致的答案,所以我想我应该把我的修正贴出来。

最后为我工作的是:

  1. 在OS应用程序预览中打开PDF
  2. 单击表单字段,添加文本,然后删除该文本(因此实际上没有任何更改)
  3. 拯救它
  4. 再次通过pdftk运行PDF

总的来说,我对编码或PDF并不那么熟悉,但是用预览保存PDF似乎可以修复编码,或者至少可以将其带到pdftk可以使用它的地方。祝好运。

票数 22
EN

Stack Overflow用户

发布于 2019-10-15 12:21:50

这给我带来了两天的头痛。原来我把注意力集中在问题的错误端上了。

一个不错的选择不是手动的,只需要做一次,就是在源PDF表单的字段中输入一些文本,在您的例子中。/my_form.pdf。我不知道这到底是为什么,但确实如此。这样,如果您想在任何时候创建一个新文件,您就不必经历这样的麻烦:)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23948647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档