首页 > 解决方案 > 无法阻止 Ghostscript 子集字体

问题描述

我使用 wkHTMLtoPDF 从网站生成了一个 PDF,名为test3.pdf.

pdffonts报告字体是嵌入的而不是子集的:

$ pdffonts test3.pdf
Config Error: No display font for 'Symbol'
Config Error: No display font for 'ZapfDingbats'
name                                 type              emb sub uni prob object ID
------------------------------------ ----------------- --- --- --- ---- ---------
ArialRegular                         CID TrueType      yes no  yes          11  0
ArialBold                            CID TrueType      yes no  yes          40  0
TimesNewRomanRegular                 CID TrueType      yes no  yes          41  0

之后我用 Ghostscript (9.06) 进一步处理了文件,明确告诉它不要子集字体:

gswin64c.exe \
    -dPDFX \
    -dBATCH \
    -dNOPAUSE \
    -dNOPROMPT \
    -dNOOUTERSAVE \
    -sProcessColorModel=DeviceCMYK \
    -sColorConversionStrategy=CMYK \
    -sColorConversionStrategyForImages=CMYK \
    -sDEVICE=pdfwrite \
    -sPDFACompatibilityPolicy=1 \
    -sOutputICCProfile=Coated_Fogra39L_VIGC_300.icc \
    -dAutoFilterColorImages=false \
    -dAutoFilterGrayImages=false \
    -dDownsampleColorImages=false \
    -dDownsampleGrayImages=false \
    -dDownsampleMonoImages=false \
    -dCompressFonts=true \
    -dSubsetFonts=false \
    -dEmbedAllFonts=true \
    -sOutputFile=test3.ghost.pdf \
    PDFX4_def.ps \
    test3.pdf

然而,结果test3.ghost.pdf具有子集字体:

$ pdffonts test3.ghost.pdf
Config Error: No display font for 'Symbol'
Config Error: No display font for 'ZapfDingbats'
name                                   type              emb sub uni prob object ID
-------------------------------------- ----------------- --- --- --- ---- ---------
EFHOSN+TimesNewRomanRegular-Identity-H CID TrueType      yes yes yes          33  0
JXUCAA+ArialBold-Identity-H            CID TrueType      yes yes yes          29  0
HDZKQN+ArialRegular-Identity-H         CID TrueType      yes yes yes          15  0

我检查了源代码,并且(使用未压缩的 QPDF)字体字节流实际上比来自test3.pdf.

显然-dSubsetFonts=false在这里不起作用...

标签: pdffontsghostscript

解决方案


推荐阅读