我正在使用免費的pdf庫libharu生成PDF文件, 但我有一個編碼問題,我無法在PDF文件上繪製泰文lanugage文本, 所有文本顯示「??? ..」如何使用libharu庫將泰文文本繪製成PDF文件
有人知道如何解決它? 謝謝
我正在使用免費的pdf庫libharu生成PDF文件, 但我有一個編碼問題,我無法在PDF文件上繪製泰文lanugage文本, 所有文本顯示「??? ..」如何使用libharu庫將泰文文本繪製成PDF文件
有人知道如何解決它? 謝謝
當您將文本寫入PDF時,請使用正確的字體和編碼。在libharu文檔必須做好一切準備:http://libharu.sourceforge.net/fonts.html
在你的情況,你必須使用ISO8859-11
Thai, 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]);
我已經成功地繪製象形文字文本(不是泰國人,而是中國人和日本人)使用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的分支,它現在合併到主分支中。