PDF优化Acrobat与Ghostscript

我有一个PDF文件,我想优化.我从外部源接收文件,所以我没有办法从头开始重新创建它.

当我在Acrobat中打开文件并查询资源时,它表示文件中的字体占用了90%的空间.如果我将文件保存为postscript,然后将postscript文件保存为优化的PDF,则文件要小得多(小80%以上),并且字体仍然是嵌入的.

我试图用ghostscript重新创建这些结果.我已尝试使用pswrite和pdfwrite进行各种选项排列,但是当我从PDF到Postscript进行初始转换时,文本会转换为图像.当我转换回PDF时,字体引用已经消失,所以我最终得到一个PDF文件,其中包含’imaged’文本而不是实际字体.

该文件包含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给出了“对象标签格式错误”).

我无法提供原始文件,因为它们包含机密信息,但我会尝试回答有关它们需要回答的任何问题.

有任何想法吗?提前致谢.

最佳答案 不要使用pswrite.正如您所发现的,这将呈现文本.而是使用保留字体和文本的ps2write设备.

你没有说你正在使用哪个版本的Ghostscript,但我建议你使用最近的版本.

一点; Ghostscript没有像Acrobat那样“优化”PDF,而是重新创建它.原始PDF被完全解释为产生一系列标记页面的操作,pdfwrite(和ps2write)然后创建一个只包含那些操作的新文件.

如果选择子集字体,则仅包含所需的字形.如果原始PDF包含无关信息(例如,Adobe Illustrator通常会嵌入.ai文件的完整副本),那么这将被丢弃.这可能会导致文件较小,也可能不会.

请注意,pdfwrite目前不支持压缩外部参照和其他一些后续功能,因此有些文件可能会变大.

我个人不会通过ps2write,因为这只是增加了另一层的prcoessing和丢弃信息.我只想用pdfwrite创建一个新的PDF文件.如果您找到不起作用的文件(使用当前代码),那么您应该在http://bugs.ghostscript.com处提出错误报告,以便有人可以解决问题.

点赞