You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ghostscript ps2write处理Type1C字体生成Type3位图字体是否为预期行为?

Ghostscript ps2write处理Type1C字体生成Type3位图字体的原因分析

使用Ghostscript的ps2write设备处理含TrueType或Type1字体的文档时表现正常,但处理含Type1C字体的文档时,会生成Type3位图字体。以下说明这是否为预期行为及背后原因。

复现步骤

  • 创建最小化TeX文档:
    \documentclass{article}
    \begin{document}
    Test
    \end{document}
    
  • 编译为PDF(生成含Type1字体的文档):
    pdflatex document.tex
    
  • 转换为PostScript再转回PDF(生成含Type1C字体的文档):
    gs -dNOPAUSE -dBATCH -sDEVICE=ps2write -sOutputFile=document.ps -f document.pdf
    gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -o restore1.pdf document.ps
    
  • 重复转换操作(生成含Type3位图字体的文档):
    gs -dNOPAUSE -dBATCH -sDEVICE=ps2write -sOutputFile=restore1.ps -f restore1.pdf
    gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -o restore2.pdf restore1.ps
    

各文档的字体信息

$ pdffonts original.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
EVFUHE+NimbusRomNo9L-Regu            Type 1            Custom           yes yes yes      4  0
$ pdffonts restore1.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
QHWNWY+CMR10                         Type 1C           WinAnsi          yes yes no       7  0
$ pdffonts restore2.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
[none]                               Type 3            Custom           yes no  yes     11  0

使用的软件版本

$ gs --version
10.01.2

$ pdflatex --version | head -1
pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2022)

原因分析

这是预期行为,核心原因如下:

  1. PostScript规范的原生支持限制:Type1C(压缩Type1字体,又称CIDFontType0C)是PDF特有的字体格式,PostScript语言规范并未原生支持该格式。ps2write作为生成PostScript文档的设备,无法直接将Type1C字体转换为PostScript兼容的字体类型(如Type1、TrueType)。
  2. Fallback渲染机制:当Ghostscript遇到无法直接转换的字体格式时,会触发 fallback 逻辑,将字体渲染为Type3位图字体。Type3是PostScript支持的一种位图化字体格式,虽能保证文档显示一致性,但字体不再是矢量格式,缩放时易失真且文件体积会增大。
  3. 两次转换的差异:第一次转换时,原PDF含Type1字体,ps2write可正常将其转为PostScript支持的格式,后续pdfwrite设备会将其压缩为Type1C以优化体积;第二次转换时输入的PDF含Type1C字体,ps2write无法处理,只能转为Type3位图字体,最终转回PDF时保留该格式。

内容的提问来源于stack exchange,提问作者Stefan Schmidt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 06:23:28