2012-10-17 9 views
6

Ho alcuni file di font cinesi personalizzato:Come faccio a sapere la codifica corretta quando chiamo BaseFont.createFont() con itext?

aaa.ttf 
bbb.ttf 
ccc.ttf 

E voglio usarli per creare il mio pdf con iText.

Questo è il codice che uso per creare un BaseFont:

String encoding = ??? 
BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", 
           encoding, 
           BaseFont.EMBEDDED); 

Ma non so come trovare il encoding. Prendete aaa.ttf per esempio:

enter image description here

posso trovare il encoding dalle informazioni? Ho provato alcune codifiche come BaseFont.CP1252 o BaseFont.WINANSI, ma non hanno funzionato, l'output è una pagina vuota o un sacco di ?????? caratteri se sono caratteri cinesi.

risposta

8

Ci sono diverse risposte a questa domanda. Per una panoramica completa, puoi leggere il capitolo 11 del mio libro, "iText in Action", ma se vuoi solo essere sicuro, usa Identity-H per il testo orizzontale (e Identity-V). Questa non è realmente una codifica, ma creerà un carattere composito nel PDF che utilizza Unicode: http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#IDENTITY_H

+0

Grazie per il tuo aiuto, il creatore di itext. Ho appena provato 'IDENTITY_H' e ho trovato che i caratteri possono essere visualizzati correttamente in pdf. – Freewind

Problemi correlati