我正在尝试使用Ghostscript将一些PDF文件(由FastReports生成)转换为PCL,并且效果很好,除了带有重音的单词显示错误的字符。
这就是我所说的ghostscript:
bin\gswin32c -dBATCH -dNOPAUSE -sDEVICE=pxlmono -sFONTPATH=C:\Windows\Fonts -dDuplex -dFirstPage=1 -dLastPage=2 -sOutputFile=Parte.pcl -fParte.pdf
我猜问题出在字体上,因为它说找不到Arial和Verdana字体(尽管两者都安装在\ Windows \ Fonts上)。
GPL Ghostscript 9.27 (2019-04-04)
Copyright (C) 2018 Artifex Software, Inc. All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Processing pages 1 through 2.
Page 1
Can't find CID font "Verdana".
Attempting to substitute CID font /Adobe-Identity for /Verdana, see doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-Identity" is not provided either. attempting to use fallback CIDFont.See doc/Use.htm#CIDFontSubstitution.
Loading a TT font from %rom%Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Identity ... Done.
Can't find CID font "Verdana".
Attempting to substitute CID font /Adobe-Identity for /Verdana, see doc/Use.htm#CIDFontSubstitution.
Can't find CID font "Verdana".
Attempting to substitute CID font /Adobe-Identity for /Verdana, see doc/Use.htm#CIDFontSubstitution.
Can't find CID font "Arial".
Attempting to substitute CID font /Adobe-Identity for /Arial, see doc/Use.htm#CIDFontSubstitution.
Can't find CID font "Arial".
Attempting to substitute CID font /Adobe-Identity for /Arial, see doc/Use.htm#CIDFontSubstitution.
Page 2
Can't find CID font "Arial".
Attempting to substitute CID font /Adobe-Identity for /Arial, see doc/Use.htm#CIDFontSubstitution.
Loading a TT font from %rom%Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Identity ... Done.
Can't find CID font "Verdana".
Attempting to substitute CID font /Adobe-Identity for /Verdana, see doc/Use.htm#CIDFontSubstitution.
是否有任何参数可以解决这些字体的问题?谢谢。
PS:如果要测试原始PDF文件,可以在此处下载:PDF File
答案 0 :(得分:1)
您的PDF文件使用以下CIDFonts; Arial,Arial,Bold,Verdana,Verdana,Bold和Verdana,BoldItalic。它不包括这些字体的任何。
虽然不包括常规字体的做法很差,但在规范中特别指出必须嵌入CIDFonts。但是,许多创作者未能这样做,大概是因为它比较困难。包括参考要容易得多,而将辛苦的工作留给了PDF使用者。那么,如果字体对消费者不可用呢?...
如果不存在字体或CIDFont,则Ghostscript必须使用替代字体。 CIDFonts比普通字体更难替换,并且Ghostscript基本上提供了一个真正的CIDFont替代品DroidSansFallback,它可用于所有语言。有一个“子弹” CIDFont,它是最后一次降级的后备,因为除了子弹符号之外,它没有任何内容。
要获得正确的输出,您必须将CIDFonts嵌入PDF文件中,或者提供合适的替代CIDFont供Ghostscript使用。请注意,FONTPATH
开关仅适用于字体,而不适用于CIDFonts,因此它对该文件无用(尽管显然它对于使用字体的文件有好处)。
CIDFont替换机制在Ghostscript documentation中进行了描述,我想如果您向Ghostscript提供各种Windows TrueType字体作为丢失的命名CIDFonts的替代品,那么您的文件将正确呈现。
请注意,由于您使用的是Windows,因此Ghostscript将使用ROM文件系统。如果您编辑cidfmap文件,则需要使用-I
(包括)开关将包含cidfmap文件的路径添加到搜索路径。您可能会发现,更简单地在c:\ Program Files(x86)\ gs \ gs9.27 \ Resource \ Init中编辑文件并使用-I"c:/Program Files (x86)/gs/gs9.27/Resource/Init"