2012-10-17 2 views
6

Ich habe einige benutzerdefinierte chinesische Schriftdateien:Woher weiß ich die richtige Codierung, wenn ich BaseFont.createFont() mit ITEXT aufrufen?

aaa.ttf 
bbb.ttf 
ccc.ttf 

Und ich möchte, dass sie verwenden, um meine pdf mit iText zu erstellen.

Dies ist der Code Ich benutze einen BaseFont zu erstellen:

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

Aber ich weiß nicht, wie die encoding zu finden. Nehmen Sie aaa.ttf zum Beispiel:

enter image description here

Kann ich die encoding aus den Informationen? Ich habe versucht, einige Codierungen wie BaseFont.CP1252 oder BaseFont.WINANSI, aber sie haben nicht funktioniert, die Ausgabe sind leere Seite oder viele ?????? Zeichen, wenn sie chinesische Zeichen sind.

Antwort

8

Es gibt verschiedene Antworten auf diese Frage. Für einen vollständigen Überblick können Sie Kapitel 11 meines Buches "iText in Action" lesen, aber wenn Sie nur sicher sein wollen, verwenden Sie Identity-H für horizontalen Text (und Identity-V). Dies ist nicht wirklich eine Kodierung, aber es wird eine zusammengesetzte Schriftart in der PDF erstellen, die Unicode verwendet: http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#IDENTITY_H

+0

Vielen Dank für Ihre Hilfe, der Schöpfer von ITEXT. Ich habe gerade 'IDENTITY_H' versucht und festgestellt, dass die Zeichen korrekt in pdf angezeigt werden können. – Freewind

Verwandte Themen