我正在尝试通过 ImageMagick (v 6.8.7-0) 将此 PDF 转换为 JPEG 图像: https://dl.dropboxusercontent.com/u/10351891/cd.pdf
我没有找到任何有效的解决方案来保留 PDF 中填充的数据。 这是尝试过的命令之一:
转换-颜色空间 CMYK -alpha 关闭 -交错无 -密度 300x300 -质量 100 cd.pdf[0] cd_image.jpg
由于 ImageMagick 使用 Ghostscript 进行转换,我也将其更新到最新版本 (v 9.10),但没有任何变化。
该命令总是打印出一些警告:
“警告:考虑‘0000000000 XXXXX n’作为免费条目”
“/BBox 的宽度或高度为零,这是不允许的。”
有人找到转换它的方法吗?
更多信息:
我使用 Mac 版 Preview 来填写表单。
在生产中,我们使用 Ubuntu 而不是 Mac OS X,并且 PDF 不是我填写的,而是发送给我们预先填写的
最佳答案
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 盒子和 Adobe Acrobat,您可以尝试 与前面提到的脚本。
- 如果您有权使用 Windows 盒子并购买商业版 库是一个选项,您可以尝试使用 Amyuni PDF Creator (免责声明:我在 Amyuni Technologies 工作)。用于再生 外观流,您将需要枚举表单字段, 检索它们的值,为它们设置一个空值,然后重新分配 它们是原始值。为了进行表单扁平化,您必须 将每个表单字段的注释属性设置为 false。
- 如果您有权访问 Linux 机器并且具有 GPL 许可证的库 不是问题,您可以尝试使用 iText 创建 Java 应用程序, 方法 PdfStamper.setFormFlattening(boolean) 似乎可以满足您的需要。
关于pdf - 如何使用 ImageMagick 将已填写表单的 PDF 转换为 JPEG 图像并保留表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20156293/