首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何添加CIDFont喜欢的字体名称包含汉字?

如何添加CIDFont喜欢的字体名称包含汉字?
EN

Stack Overflow用户
提问于 2019-12-10 17:59:48
回答 1查看 485关注 0票数 0

在我的Pdf文件中有许多不同的字体,像pdf,方正黑体_GBK,etc.So当我使用gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dPDFSTOPONERROR -dNOOUTERSAVE -dPDFSETTINGS=/prepress -dCompressFonts=true -dSubsetFonts=false -dEmbedAllFonts=true -sColorConversionStrategy=RGB -dCompatibilityLevel=1.6 -sOutputFile=output.pdf 1000027661706311repair1.pdf命令将方正细等线简体转换成其他格式时,它会运行并报告一个错误:

代码语言:javascript
运行
复制
Processing pages 1 through 3.
Page 1
Can't find CID font "方正黑体_GBK".
Attempting to substitute CID font /Adobe-GB1 for /方正黑体_GBK, see doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-GB1" is not provided either. attempting to use fallback CIDFont.See doc/Use.htm#CIDFontSubstitution.
Loading a TT font from /usr/local/share/ghostscript/9.50/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-GB1 ... Done.
Can't find CID font "方正细等线简体".
Attempting to substitute CID font /Adobe-GB1 for /方正细等线简体, see doc/Use.htm#CIDFontSubstitution.
Can't find CID font "楷体_GB2312".
Attempting to substitute CID font /Adobe-GB1 for /楷体_GB2312, see doc/Use.htm#CIDFontSubstitution.
Loading NimbusRoman-Regular font from /usr/local/share/ghostscript/9.50/Resource/Font/NimbusRoman-Regular... 9497580 8102504 3768888 2094014 3 done.
Page 2
Can't find CID font "方正黑体_GBK".
Attempting to substitute CID font /Adobe-GB1 for /方正黑体_GBK, see doc/Use.htm#CIDFontSubstitution.
Loading a TT font from /usr/local/share/ghostscript/9.50/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-GB1 ... Done.
Can't find CID font "方正细等线简体".
Attempting to substitute CID font /Adobe-GB1 for /方正细等线简体, see doc/Use.htm#CIDFontSubstitution.
Page 3
Can't find CID font "方正细等线简体".
Attempting to substitute CID font /Adobe-GB1 for /方正细等线简体, see doc/Use.htm#CIDFontSubstitution.
Loading a TT font from /usr/local/share/ghostscript/9.50/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-GB1 ... Done.
Can't find CID font "方正黑体_GBK".
Attempting to substitute CID font /Adobe-GB1 for /方正黑体_GBK, see doc/Use.htm#CIDFontSubstitution.
Can't find CID font "楷体_GB2312".
Attempting to substitute CID font /Adobe-GB1 for /楷体_GB2312, see doc/Use.htm#CIDFontSubstitution.

这是我的/usr/local/share/ghostscript/9.50/Resource/CIDFSubet文件夹:

代码语言:javascript
运行
复制
-rw-r--r-- 1 root root 23M 12月 12 09:17 DroidSansFallback.ttf
lrwxrwxrwx 1 root root  35 12月 11 10:19 FZBSK.TTF -> /usr/share/fonts/winfonts/FZBSK.TTF
lrwxrwxrwx 1 root root  36 12月 11 10:19 FZDBSK.TTF -> /usr/share/fonts/winfonts/FZDBSK.TTF
lrwxrwxrwx 1 root root  35 12月 11 10:19 FZHTK.TTF -> /usr/share/fonts/winfonts/FZHTK.TTF
lrwxrwxrwx 1 root root  35 12月 11 10:19 FZSSK.TTF -> /usr/share/fonts/winfonts/FZSSK.TTF
lrwxrwxrwx 1 root root  36 12月 11 10:19 FZXBSK.TTF -> /usr/share/fonts/winfonts/FZXBSK.TTF
lrwxrwxrwx 1 root root  37 12月 11 10:17 FZXDXJW.TTF -> /usr/share/fonts/winfonts/FZXDXJW.TTF
lrwxrwxrwx 1 root root  42 12月 11 10:19 KaiTi_GB2312.ttf -> /usr/share/fonts/winfonts/KaiTi_GB2312.ttf
lrwxrwxrwx 1 root root  36 12月 11 10:19 msyhbd.ttc -> /usr/share/fonts/winfonts/msyhbd.ttc
lrwxrwxrwx 1 root root  35 12月 11 10:19 msyhl.ttc -> /usr/share/fonts/winfonts/msyhl.ttc
lrwxrwxrwx 1 root root  34 12月 11 10:19 msyh.ttc -> /usr/share/fonts/winfonts/msyh.ttc
lrwxrwxrwx 1 root root  37 12月 11 10:19 simfang.ttf -> /usr/share/fonts/winfonts/simfang.ttf
lrwxrwxrwx 1 root root  36 12月 11 10:19 simhei.ttf -> /usr/share/fonts/winfonts/simhei.ttf
lrwxrwxrwx 1 root root  36 12月 11 10:19 simkai.ttf -> /usr/share/fonts/winfonts/simkai.ttf
lrwxrwxrwx 1 root root  36 12月 11 10:19 simsun.ttc -> /usr/share/fonts/winfonts/simsun.ttc
lrwxrwxrwx 1 root root  36 12月 11 10:19 simyou.ttf -> /usr/share/fonts/winfonts/SIMYOU.TTF
lrwxrwxrwx 1 root root  42 12月 11 10:19 wqy-zenhei.ttc -> /usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc

这是我的/usr/local/share/ghostscript/9.50/Resource/Init/cidfmap.local

代码语言:javascript
运行
复制
...
/MicrosoftYaHei << /FileType /TrueType
  /Path pssystemparams /GenericResourceDir get
  (CIDFSubst/msyh.ttc) concatstrings
  /SubfontID 0
  /CSI [(GB1) 5] >> ;
/MicrosoftYaHei-Bold << /FileType /TrueType
  /Path pssystemparams /GenericResourceDir get
  (CIDFSubst/msyhbd.ttc) concatstrings
  /SubfontID 0
  /CSI [(GB1) 5] >> ;
/MicrosoftYaHeiLight << /FileType /TrueType
  /Path pssystemparams /GenericResourceDir get
  (CIDFSubst/msyhl.ttc) concatstrings
  /SubfontID 0
  /CSI [(GB1) 5] >> ;
/NSimSun << /FileType /TrueType
  /Path pssystemparams /GenericResourceDir get
  (CIDFSubst/simsun.ttc) concatstrings
  /SubfontID 1
  /CSI [(GB1) 5] >> ;
/SimHei << /FileType /TrueType
  /Path pssystemparams /GenericResourceDir get
  (CIDFSubst/simhei.ttf) concatstrings
  /CSI [(GB1) 5] >> ;
/SimSun << /FileType /TrueType
  /Path pssystemparams /GenericResourceDir get
  (CIDFSubst/simsun.ttc) concatstrings
  /SubfontID 0
  /CSI [(GB1) 5] >> ;
...

我知道这个pdf需要一些中文字体,但是ghostscript的配置文件是ascii文本,它不支持写成中文…我注意到一些有趣的事情,当使用iText获取pdf的元数据时,中文字体名称变成了以下格式:

代码语言:javascript
运行
复制
fontTemp = /#bf#ac#cc#e5_GB2312
fontTemp = /#b7#bd#d5#fd#ba#da#cc#e5_GBK
fontTemp = /#b7#bd#d5#fd#cf#b8#b5#c8#cf#df#bc#f2#cc#e5
fontTemp = /STSong-Light

有没有人知道怎么加汉字的CIDFont?

EN

回答 1

Stack Overflow用户

发布于 2019-12-10 19:09:11

PDF/A规范要求嵌入所有字体(实际上,所有CIDFonts都应该嵌入到PDF文件中)。您似乎根本没有将缺少的CIDFont提供给Ghostscript,或者,如果您已经将其添加到Ghostscript字体列表中,您还没有说明您是如何添加它的。

您需要创建一个cidfmap文件(可以使用ghostpdl/Resource/Init中的文件),并使用-I开关包含包含该文件的目录。最简单的解决方案是修改ghostpdl/Resource/Init中的内容,并在命令行中添加-I/ghostpdl/Resource/Init。

显然,您添加的条目需要正确获取缺少的字体文件的文件名。几乎可以肯定的是,还必须使用PostScript来创建名称,因为必须使用二进制数据,可能包括0x20或0x00字符代码。

类似于:

代码语言:javascript
运行
复制
<B9656B63C67E497BBF7E807B534F> cvn << ....>> ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59264569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档