2010-07-31 6 views

Répondre

0

Lorsque vous écrivez du texte au format PDF, utilisez la police et l'encodage corrects. Dans la documentation de libharu vous avez toutes les possibilités: http://libharu.sourceforge.net/fonts.html

Dans votre cas, vous devez utiliser le ISO8859-11Thai, TIS 620-2569 character set

Un exemple (en espagnol):

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

J'ai réussi à rendre les textes hiéroglyphiques (pas thaïlandais, mais chinois et japonais) en utilisant libharu. Tout d'abord, j'ai utilisé le mode Unicode, s'il vous plaît se référer à HPDF_UseUTFEncodings() documentation de la fonction.

Pour le langage C, voici une séquence d'appels API libHaru nécessaires pour surmonter vos problèmes:

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

Ici docHandle est un objet HPDF_Doc valide.

La partie suivante est un travail correct avec les polices UTF:

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

Après ces appels que vous pouvez rendre les textes contenant des caractères unicode thaïlandais. Notez également à propos de l'incorporation de l'indicateur (3ème paramètre de LoadTTFontFromFile) - votre fichier PDF peut être illisible en raison de références de police externes. Si vous n'êtes pas fou avec la taille du PDF de sortie, vous pouvez simplement intégrer des polices.

J'ai testé quelques polices thaïlandaises .ttf trouvées dans Google et elles ont été rendues OK. Aussi (il peut être important, mais je ne suis pas sûr) J'utilise fork of libharu https://github.com/kdeforche/libharu qui est maintenant fusionné dans la branche master.