【发布时间】:2018-09-08 22:47:01
【问题描述】:
我正在使用 Ghostscript 处理一些 PDF 以减小大小。有时处理时嵌入的字体不如查看原件时使用的本地字体。
几个问题:
我想已经嵌入输入 PDF 中的字体会在输出 PDF 中重复使用,而不是从本地计算机获取。它是否正确?即使启用了子集设置也是如此吗?
是否有可能(并且合理地)让 Ghostscript 仅在严格匹配时嵌入缺失的字体?
Ghostscript 是否可以保留已嵌入输入 PDF 中的字体,但不打扰嵌入源中缺少的字体?
背景
目前我在 Ghostscript 9.23 中使用以下命令:
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dDownsampleColorImages=true \
-dDownsampleGrayImages=true \
-dDownsampleMonoImages=true \
-dColorImageResolution=72 \
-dGrayImageResolution=72 \
-dMonoImageResolution=72 \
-dColorImageDownsampleThreshold=1.0 \
-dGrayImageDownsampleThreshold=1.0 \
-dMonoImageDownsampleThreshold=1.0 \
-dNOPAUSE -dQUIET -dPARANOIDSAFER -dBATCH \
-dDetectDuplicateImages=true \
-sOutputFile=output.pdf input.pdf
但是,在某些情况下,字体重新映射似乎会损害渲染结果。这是一个没有任何嵌入字体的源 PDF 在字体替换和嵌入后对典型查看器的渲染性能下降的情况:
之前:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
FrizQuadrata-Bold Type 1 MacRoman no no no 7 0
Helvetica-Black Type 1 MacRoman no no no 9 0
Helvetica-Light Type 1 MacRoman no no no 59 0
Helvetica-Bold TrueType MacRoman no no no 65 0
Helvetica-Bold Type 1 MacRoman no no no 68 0
ZapfDingbats Type 1 Custom no no no 70 0
Helvetica-Black Type 1 MacRoman no no no 108 0
Helvetica-BlackOblique Type 1 MacRoman no no no 136 0
ZapfDingbats Type 1 Custom no no no 137 0
Helvetica-Bold Type 1 MacRoman no no no 780 0
Helvetica-LightOblique Type 1 MacRoman no no no 926 0
之后:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
VRGBBC+Times-Bold Type 1C MacRoman yes yes no 8 0
JTHLZY+Helvetica-Bold Type 1C MacRoman yes yes no 10 0
ETQHWQ+Helvetica Type 1C MacRoman yes yes no 20 0
ZapfDingbats Type 1 ZapfDingbats no no yes 29 0
LSUJJC+Helvetica-BoldOblique Type 1C MacRoman yes yes no 46 0
RBDUAX+Helvetica-Oblique Type 1C MacRoman yes yes no 202 0
【问题讨论】:
标签: pdf ghostscript