Ghostscript在PDF中呈现嵌入字体效果差(锯齿明显)

3
Ghostscript在pdf中无法正确呈现嵌入的字体。 例如:http://vegro.nl/cmsfiles/ConsumentenAssortiment/Brochure/10.axd 右上方标志(“Thermrad”)的字符都是锯齿状的。 如果我在Adobe Reader中打开文件,就没有任何问题!
您也遇到这个问题吗?有没有解决办法? 我已经搜索了几天,但什么都找不到。
我尝试过在Windows Vista和CentOS上使用Ghostscript 8.64和8.71。

你用的是哪个Ghostscript命令行?还有,什么是.axd文件?顺便说一句,对我来说,这个东西在Reader 9.3.3中无法打开。它显示“文件无法通过网络加载...可能已损坏?” - Kurt Pfeifle
另外,您想通过Ghostscript实现什么目标?您有一个PDF文件--那么您希望Ghostscript将其转换为什么?!? - Kurt Pfeifle
2个回答

3

我的建议是使用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中出现的问题:

 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

将我的DLL更新到9.16后,我的颜色和字体问题得到了解决!谢谢! - AndyClaw

0

当我们将PDF转换为JPG时,使字体呈现平滑的解决方法是打开文本反锯齿功能,使用-dGraphicsAlphaBits=4 -dTextAlphaBits=4

这是我用来根据命令行传递的页面大小进行转换的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版本会自动关闭字体反锯齿,这是至少一个已知问题使用GhostScript将PDF转换为透明PNG提供了解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接