【发布时间】:2011-11-17 23:02:44
【问题描述】:
我有一个想要优化的 PDF 文件。我从外部来源接收文件,因此我无法从头开始重新创建它。
当我在 Acrobat 中打开文件并查询资源时,它说文件中的字体占用了 90% 以上的空间。如果我将文件另存为 postscript,然后将 postscript 文件保存为优化的 PDF,则文件会明显变小(缩小 80% 以上),并且字体仍然是嵌入的。
我正在尝试使用 ghostscript 重新创建这些结果。我尝试了 pswrite 和 pdfwrite 的各种选项排列,但是当我进行从 PDF 到 Postscript 的初始转换时,文本被转换为图像。当我转换回 PDF 时,字体参考消失了,所以我最终得到一个包含“图像”文本而不是实际字体的 PDF 文件。
该文件包含我拥有的 22 种嵌入式自定义 Type1 字体。我已将字体添加到 ghostscript 搜索路径,并证明 ghostscript 可以通过以下方式找到它们:
gs \
-I/home/nauc01
-sFONTPATH=/home/nauc01/fonts/Type1 \
-o 3783QP.pdf \
-sDEVICE=pdfwrite \
-g5950x8420 \
-c "200 700 moveto" \
-c "/3783QP findfont 60 scalefont setfont" \
-c "(TESTING !!!!!!) show showpage"
生成的文件正确嵌入了字体。
我也尝试过使用 ghostscript 从 PDF 转到 PDF,如下所示:
gs \
-sDEVICE=pdfwrite \
-sNOPAUSE \
-I/home/nauc01 \
-dBATCH \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/printer \
-CompressFonts=true \
-dSubsetFonts=true \
-sOutputFile=output.pdf \
input.pdf
但输出通常比输入大,除了 ghostscript 我无法查看文件(adobe reader 给出“对象标签格式错误”)。
我无法提供原始文件,因为它们包含机密信息,但我会尝试回答任何需要回答的问题。
有什么想法吗?提前致谢。
【问题讨论】:
-
如果 Acrobat 能满足您的需求,我不明白用 ghostscript 重新创建它的愿望。 Acrobat 肯定可以进行批量转换。
-
@luserdroog 我需要在 *nix 环境中运行它。我只有 Windows 版的 Acrobat。我相信 Acrobat 可用于 *nix,但我希望我不必为这项工作购买东西,因为这将是一个临时解决方案。如果一切都失败了,我可能最终不得不购买它。感谢您的回复。
标签: pdf ghostscript postscript