我创建了这个小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(在页面上向下滚动以查看文本)。
答案 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 ...