2

我正在尝试通过 ImageMagick(v 6.8.7-0)将此 PDF 转换为 JPEG 图像:https ://dl.dropboxusercontent.com/u/10351891/cd.pdf

我没有找到任何可行的解决方案来保留 PDF 中的填充数据。这是尝试过的命令之一:

convert -colorspace CMYK -alpha off -interlace none -density 300x300 -quality 100 cd.pdf[0] cd_image.jpg

由于 ImageMagick 使用 Ghostscript 进行转换,我也将其更新到最新版本(v 9.10),但没有任何改变。

该命令总是打印出一些警告:

"Warning: considering '0000000000 XXXXX n' as a free entry"

"/BBox has zero width or height, which is not allowed."

有人找到转换它的方法吗?

更多信息:

我使用 Preview for Mac 来填写表格。

在生产中,我们使用 Ubuntu 而不是 Mac OS X,PDF 不是由我填写的,而是预先填写的发送给我们

4

1 回答 1

2

Max OS X PDF Preview 不正确支持 AcroForms 是一个已知问题,请参阅包含一些详细信息的博客文章:Script to Fix Mac OSX Preview.app Form Fill and Save

除其他错误外,您的 PDF 表单字段缺少一条信息:外观流(一组指令告诉查看者在未编辑字段值时应该如何呈现字段值)。

如果您可以指定应使用哪个 PDF 查看器来编辑表单,请避免使用 Mac OS X 预览。如果您需要支持 Mac OS X 预览,那么您可以尝试使用任何允许填写表单的 PDF 库以编程方式重新生成此信息,或者您可以应用表单展平过程(将“动态”文本转换为静态)在导出为 jpeg 之前。

例子:

  • 如果您可以访问 Windows 机器和 Adob​​e Acrobat,则可以尝试使用前面提到的脚本。
  • 如果您可以使用 Windows 机器并且可以选择购买商业图书馆,您可以尝试使用Amyuni PDF Creator (免责声明:我为 Amyuni Technologies 工作)。为了重新生成外观流,您需要枚举表单字段,检索它们的值,为它们设置一个空值,然后为它们重新分配原始值。为了进行表单展平,您必须将每个表单字段的注释属性设置为 false。
  • 如果您可以访问 Linux 机器并且具有 GPL 许可证的库不是问题,您可以尝试使用 iText 创建 Java 应用程序,方法 PdfStamper.setFormFlatening(boolean) 似乎可以满足您的需求。
于 2013-11-23T01:36:37.340 回答