9 Stimmen

Unicode-Zeichen in iText PDF

Ich brauche Hilfe bei iText. Ich habe mir einige Google-Ergebnisse und einige hier angesehen, aber nichts gefunden, was für mich funktioniert. Ich muss polnische Zeichen in meinem pdf verwenden, aber ich habe nichts für nein. Hier ist ein Code, der ich denke, ist wichtig, wenn etwas anderes in Kommentar schreiben müssen:

private static Font bigFont = new Font(Font.FontFamily.HELVETICA, 18, Font.BOLD);

eine andere

Paragraph par = new Paragraph(abadzak, bigFont);

Kann mir jemand sagen, was zu tun ist, um das in pdf und anderen polnischen Zeichen sichtbar zu machen?

UPDATE Ich finanziere dies, weiß aber nicht, wie ich es für mein Projekt verwenden soll. Polnische Zeichen in itext PDF

18voto

dotoree Punkte 2955

Sie benötigen eine Unicode-Schriftart. Hier ist ein Beispiel:

BaseFont bf = BaseFont.createFont("arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

Paragraph p = new Paragraph("inasi ssz ile aaç", new Font(bf, 22));

document.add(p);

http://abdullahakay.blogspot.com/2011/11/java-itext-unicode.html

EDITAR:

Hier wird der Name der Schriftartdatei arialuni.tff ist eine statische Ressource direkt unter /src/main/resources/ und kann eine beliebige Unicode-Schriftartdatei Ihrer Wahl sein. Hier Hier finden Sie eine Liste kostenloser Unicode-Schriftdateien, die online verfügbar sind.

7voto

Kamil Punkte 12561

Es hängt von der verwendeten Schriftart und der Kodierung ab. Ich habe etwas Ähnliches gefunden:

http://itext-general.2136553.n4.nabble.com/Polish-National-Characters-are-not-getting-displayed-in-the-PDF-created-by-iTExt-td2163833.html

Es gibt ein Beispiel wie dieses:

BaseFont bf = BaseFont.createFont("c:/windows/fonts/arial.ttf", 
BaseFont.CP1250, BaseFont.EMBEDDED); 
Font font = new Font(bf, 12); 
String polish = "\u0104\u0105\u0106\u0107\u0118\u0119"; 
document.add(new Paragraph(polish, font)); 

Beachten Sie, dass einige Schriftarten keine polnischen Nationalzeichen enthalten.

2voto

arslanbenzer Punkte 459

Wenn Sie das Paket com.itextpdf.kernel verwenden, können Sie jede Kodierung verwenden, die nicht in der Klasse PdfEncodings enthalten ist

PdfWriter writer ;
writer = new PdfWriter( dest ) ;
PdfDocument pdf = new PdfDocument( writer ) ;

Document document = new Document( pdf ) ;

FontProgram fontProgram = FontProgramFactory.createFont( ) ;
PdfFont font = PdfFontFactory.createFont( fontProgram, "Cp1254" ) ;
document.setFont( font );

für türkische Zeichen habe ich "Cp1254" verwendet

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X