Fonts 附言和阿拉伯文字母

Fonts 附言和阿拉伯文字母,fonts,arabic,ghostscript,postscript,Fonts,Arabic,Ghostscript,Postscript,我有一个带有一些阿拉伯文本的postScript文件,而GhostScript无法正确呈现文本。即使将postScript转换为PDF也会得到相同的结果 PS文件的文本可读且正确。使用的字体是Andalus,GhostScript发现字体没有问题,但渲染错误。我们得到的是未知的无意义字符,而不是阿拉伯字符(如正方形或符号,顺便说一句,将postScript文件转换为PDF时会显示相同的字符) postScript代码段: /Andalus findfont 20 scalefont se

我有一个带有一些阿拉伯文本的postScript文件,而GhostScript无法正确呈现文本。即使将postScript转换为PDF也会得到相同的结果

PS文件的文本可读且正确。使用的字体是Andalus,GhostScript发现字体没有问题,但渲染错误。我们得到的是未知的无意义字符,而不是阿拉伯字符(如正方形或符号,顺便说一句,将postScript文件转换为PDF时会显示相同的字符)

postScript代码段:

    /Andalus findfont 20 scalefont setfont
    100.00 xx  320.00 xx  moveto
    (WELCOME Mr. رانيا) show
    %%EndPage
我不知道它出了什么问题。我试过这么多不同的阿拉伯语字体,但没有一种有效。我们用postScript书写阿拉伯文本的方式有问题吗


感谢您提供的任何帮助

您通常不能简单地将阿拉伯语文本粘贴到字符串中,并期望在不重新编码字体的情况下获得合理的输出

PostScript字符串实际上只是一个字节字符串;对于拉丁字体和文本,标准编码恰好是ASCII,因此它们匹配,您可以只编写ASCII文本。对于几乎所有的非拉丁语来说,这是行不通的

PostScript通过一种有点神秘但非常灵活的方法来渲染字形,我们现在将忽略CIDFonts并键入0字体,因为它们会使问题复杂化

当要求显示字符串时,解释器分别从字符串中获取每个字节,然后在编码数组中查找由该字节值索引的字体中的条目。这将为它提供一个表示特定标志符号的名称对象。然后,它在CharStrings字典中查找该名称,结果是解释器运行一个过程来绘制glyph

现在,对于一段简单的阿拉伯语,你可能只需要简单的编码就可以了。编码数组限制为255个条目,因此您的字形不能超过单个字体实例的字形。如果需要超过255个字符,则需要更复杂的结构,即CIDFont

由您重新编码字体,以便要使用的字形位于要引用它们的编码位置。我不会说阿拉伯语,所以在这方面我帮不了你

然而,我知道阿拉伯语字形最多可以有3种形式,即首字母、中间字母和末端字母,因此,要覆盖整个范围,您可能需要比非阿拉伯语使用者多出数倍的字形

我建议您阅读Acumen培训网站上John Deubert的文章,特别是2001年11月和12月关于重新编码字体的文章,而不是尝试在这里提供完整的教程