Ghostscript无法正确呈现pdf中的嵌入字体。例如http://vegro.nl/cmsfiles/ConsumentenAssortiment/Brochure/10.axd右上角的徽标字符(“ Thermrad”)均呈锯齿状。如果我在Adobe Reader中打开文件,则完全没有问题!
您也有这个问题吗?有什么解决办法吗?我一直在搜索几天,但找不到任何东西。
我在Windows Vista和CentOS上都尝试了Ghostscript 8.64和8.71。
我的建议是使用Ghostscript 8.71。然后使用此命令行:
gswin32c.exe ^
-sDEVICE=pdfwrite ^
-o thermrad-out.pdf ^
-dPDFSETTINGS=/printer ^
10.axd
这应该完成将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
将PDF转换为JPG时,为我们提供平滑字体渲染的方法是使用-dGraphicsAlphaBits=4 -dTextAlphaBits=4
打开文本抗锯齿功能。
这是Windows批处理文件,我用来转换为通过命令行传递的page size。样本调用: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有解决方案。