2010-07-31 31 views

回答

0

當您將文本寫入PDF時,請使用正確的字體和編碼。在libharu文檔必須做好一切準備:http://libharu.sourceforge.net/fonts.html

在你的情況,你必須使用ISO8859-11Thai, TIS 620-2569 character set

一個例子(西班牙文):

HPDF_Font fontEn = HPDF_GetFont(pdf, "Helvetica-Bold", "ISO8859-2"); 
    HPDF_Page_TextOut(page1, 50.00, 750.00, [@"Código para correcta codificación en libharu" cStringUsingEncoding:NSISOLatin1StringEncoding]); 
1

我已經成功地繪製象形文字文本(不是泰國人,而是中國人和日本人)使用libharu。首先我使用Unicode模式,請參考HPDF_UseUTFEncodings()函數文檔。

對於C語言,這裏是克服自己的困難需要libharu API調用序列:

HPDF_UseUTFEncodings(docHandle); 
HPDF_SetCurrentEncoder(docHandle, "UTF-8"); 

這裏docHandle是一個有效的HPDF_Doc對象。

下一個部分是UTF字體正確工作:

const char * libFontName = HPDF_LoadTTFontFromFile(docHandle, fontFileName.c_str(), font_embed::EmbedFonts); 
HPDF_Font font = HPDF_GetFont(docHandle, libFontName, "UTF-8"); 

這些電話可能會呈現包含泰國字符的Unicode文本後。另請注意有關嵌入標誌(LoadTTFontFromFile的第三個參數) - 由於外部字體引用,您的PDF文件可能無法讀取。如果您對輸出PDF大小不感冒,您可能只是嵌入字體。

我測試了一些在Google中找到的泰文.ttf字體,並且它們呈現OK。此外(這可能很重要,但我不確定)我正在使用libharu https://github.com/kdeforche/libharu的分支,它現在合併到主分支中。