2014-03-13 56 views
0

我有一些帶有阿拉伯文字的postScript文件,GhostScript不能正確渲染文字。即使將postScript轉換爲PDF也會得到相同的結果。後記和阿拉伯文字母

PS文件的文本可讀性和正確性。使用的字體是安達盧斯,GhostScript找到沒有問題的字體,但錯誤地呈現。我們得到未知無意義的字符,而不是阿拉伯語的人(如正方形或符號,順便說一句,同樣的字符所示,當我們將PostScript文件轉換爲PDF)

後記片段:

/Andalus findfont 20 scalefont setfont 
    100.00 xx 320.00 xx moveto 
    (WELCOME Mr. رانيا) show 
    %%EndPage 

我不知道是什麼它是錯的。我已經嘗試了很多不同的阿拉伯字體,並沒有一個人工作。我們在PostScript中編寫阿拉伯語文本的方式存在問題嗎?

任何幫助表示讚賞

回答

1

您不能正常簡單地把阿拉伯文字轉換成字符串,並期望得到合理的輸出,無需重新編碼的字體。

PostScript字符串實際上只是一串字節;對於拉丁字體和文本,碰巧標準編碼是ASCII,所以它們匹配起來,你可以只寫ASCII文本。對於幾乎所有非拉丁語言,這都不起作用。

PostScript通過一種有點神祕但非常靈活的方法呈現字形,現在我們將忽略CIDFonts和0類型字體,因爲它們會使問題複雜化。

當被告知顯示一個字符串時,解釋器從字符串中單獨獲取每個字節,然後在字節值索引的字體中查找Encoding數組中的條目。這會給它一個代表特定字形的名稱對象。然後它查找該名字的CharStrings字典,結果是解釋器運行的一個過程來繪製字形。

現在對於一個簡單的阿拉伯語,你可以用一個簡單的編碼逃脫。編碼數組限制爲255個條目,因此不能比單個字體實例具有更多的字形。如果你需要超過255個字符,那麼你需要一個更復雜的結構,一個CIDFont。

它取決於您對字體進行重新編碼,以便您要使用的字形位於您希望引用它們的編碼位置。我不會說阿拉伯語,所以我根本無法幫助你。

但是我確實知道阿拉伯字形可以有多達3種形式,初始,中間和末端,因此您可能需要比非阿拉伯語者多出幾倍的字形才能覆蓋整個範圍。

與其嘗試在這裏展示完整教程,我建議您閱讀由John Deubert在Acumen培訓網站http://www.acumentraining.com/acumenjournal.html上發表的文章,特別是2001年11月和12月關於重新編碼字體的文章。

+0

很好的解釋。謝謝 – MoB