如何防止GhostScript在压缩PDF文件时替换字体?

kis*_*pit 5 fonts pdf ghostscript

我有一个 PDF 文件,我想将其压缩得尽可能小。不幸的是,GhostScript 用一些字体替换了原始 PDF 中的现有字体。

我在调用 GhostScript 时使用了以下命令:

gswin64c -dCompatibilityLevel=1.5 -dAutoRotatePages=/None -dPDFSETTINGS=/prepress -sDEVICE=pdfwrite -o compressed-output.pdf input.pdf
Run Code Online (Sandbox Code Playgroud)

GhostScript 的日志如下所示:

...
Substituting font Helvetica-Narrow for Frutiger-Cn.
Loading NimbusSanL-ReguCond font from %rom%Resource/Font/NimbusSanL-ReguCond... 4042872 2674104 2702120 1382849 3 done.
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... 4022032 2407506 2702120 946315 3 done.
Substituting font Helvetica for ArialMT.
Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 4022032 2457581 2702120 996650 3 done.
Page 3
Substituting font Bookman-Light for BookmanOldStyle-Bold.
Loading URWBookmanL-Ligh font from %rom%Resource/Font/URWBookmanL-Ligh... 4022032 2524045 2500280 1046986 3 done.
...
Run Code Online (Sandbox Code Playgroud)

如果原始 PDF 已经有字体,为什么 GhostScript 在压缩 PDF 时需要替换一些字体?如何防止 GhostScript 进行这种替换?

Rya*_*yan 2

默认情况下,Ghostscript 无法访问本机 Windows (TTF) 字体,因此它使用在自己的字体集中可以找到的最接近的匹配。

确保您的 pdf 中嵌入了字体。这应该可以解决 Ghostscript 的问题,并且还可以确保在非 Windows 平台上正确呈现 pdf。