Ghostscript无法正确呈现pdf中的嵌入字体。 例如http://vegro.nl/cmsfiles/ConsumentenAssortiment/Brochure/10.axd 右上角('Thermrad')徽标的字符都是锯齿状的。 如果我在Adobe Reader中打开文件,完全没问题!
你也有这个问题吗?有什么解决方案吗? 我一直在寻找几天,但我找不到任何东西..
我在Windows Vista和CentOS上都尝试过Ghostscript 8.64和8.71。
非常感谢你! 戴夫
答案 0 :(得分:3)
我的建议是使用Ghostscript 8.71。然后使用此命令行:
gswin32c.exe ^
-sDEVICE=pdfwrite ^
-o thermrad-out.pdf ^
-dPDFSETTINGS=/printer ^
10.axd
应该将PDF转换为不再存在问题的PDF。因为原始的.axd文件确实存在嵌入字体的问题。 (我正在使用XPDF套件中的pdffonts.exe
来检查)。问题发生在10.axd的第3页:
for /l %i in (1,1,16) do (
echo. ............ Page %i ............................... ^
& pdffonts.exe -f %i -l %i 10.axd ^
& echo.)
输出:
[....]
............ Page 3 ...............................
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 249 0
XCZBKH+HelveticaNeue-Light Type 1C yes yes yes 250 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 15 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 19 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 41 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 45 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 49 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 53 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 57 0
Error: Illegal entry in bfchar block in ToUnicode CMap
YCRHYF+HelveticaNeue-LightExt Type 1C yes yes yes 61 0
[....]
在我让Ghostscript修复之后,修复过的PDF中第3页的问题就消失了:
c:\> pdffonts.exe -f 3 -l 3 thermrad.pdf
name type emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
CZBBTM+HelveticaNeue-LightExt Type 1C yes yes no 13 0
MXETZY+HelveticaNeue-Light Type 1C yes yes no 40 0
答案 1 :(得分:0)
将PDF转换为JPG时,我们为平滑字体渲染的解决方法是使用-dGraphicsAlphaBits=4 -dTextAlphaBits=4
启用文本消除锯齿功能。
这是我用来转换为命令行传递的page size的Windows批处理文件。示例调用:pdf2jpg infile.pdf 11x17
gswin64c.exe ^
-dNOPAUSE -P- -dSAFER -dBATCH ^
-dGraphicsAlphaBits=4 ^
-dTextAlphaBits=4 ^
-sDEVICE=jpeg ^
-dJPEGQ=85 ^
-r300x300 ^
-sPAGESIZE=%2^
-sOutputFile=%~n1.jpg ^
%1
如果存在透明图像,则在某些gs版本中至少会有一个known issue字体抗锯齿自动关闭。 Convert a PDF to a Transparent PNG with GhostScript有一个解决方案。