如何在PDF的所有平台上正确显示克罗地亚字符?

时间:2012-02-24 07:26:25

标签: pdf-generation ghostscript postscript

我创建了这个小Postscript来创建一个测试页面:

100 100 moveto
/Courier findfont 10 scalefont setfont
(This is croatian characters test: ) show
/scaron glyphshow
/dcroat glyphshow
/ccaron glyphshow
/cacute glyphshow
/zcaron glyphshow
/Scaron glyphshow
/Dcroat glyphshow
/Ccaron glyphshow
/Cacute glyphshow
/Zcaron glyphshow
showpage

我通过Linux上的ps2pdf shell运行它(在Fedora 13和Enterprise版本5上),结果PDF显示在这些系统上很好。但是,如果我尝试在Windows系统上打开文档(在Windows XP,Vista和7上测试),则字符/ dcroat,/ ccaron,/ cacute,/ Dcroat,/ Ccaron和/ Cacute根本不显示!有人可以指出我正确的方向,问题可能在哪里,也许解决方案?

我通过GS的多个版本运行它,最新版本是GPL Ghostscript 8.71(2010-02-10)。结果总是一样的。可以找到生成的PDF here(在页面上向下滚动以查看文本)。

2 个答案:

答案 0 :(得分:1)

使用gs(Ghostscript)代替ps2pdf将PostScript文件转换为PDF。 (ps2pdf只是一个围绕Ghostscript命令行的简单包装。)

当您使用Courier(它是'基本14'字体之一)时,Ghostscript默认 NOT 将字体嵌入PDF中。这意味着,您将不得不使用一些额外的命令行魔法来强制执行Courier嵌入:

gs \
  -o croatian-glyphs.pdf \
  -sDEVICE=pdfwrite \
  -c ".setpdfwrite <</NeverEmbed [ ] /AlwaysEmbed [/Courier]>> setdistillerparams" \
  -f croation-glyphs.ps

注意,当我在Mac上运行此命令时,我在输出中只看到4个克罗地亚字符(scaron,Scaron,zcaron和Zcaron)。原因是:我的Courier在这里没有所要求的所有克罗地亚字形(因此无法嵌入它们)。

然而,如果你在一个包含其他字形的Courier系统上运行此命令,并且如果你传递给我生成的PDF,我可以看到字形很好(因为字体,或至少使用的字形子集现在嵌入PDF中。

答案 1 :(得分:0)

尝试使用ps2pdf -dEmbedAllFonts=true ...

嵌入字体