ITextPdf Umlaute und Sonderzeichen

Pablorama

Mitglied
Hallo,

ich habe ein Problem mit der Umwandlung von txt in pdf.
Ich benutze iText zur Wandlung. Die Daten kommen ursprünglich aus einer AS400, liegen aber zZ auf unserem Server.

Mein Problem ist nun, das Sonderzeichen bzw. Umlaute falsch angezeigt werden.
In der Textdatei (Quelle) steht "á", angezeigt werden soll aber in der PDF "ß".

Gibt es eine Möglichkeit, wie ich bei der Umwandlung einen deutschen Zeichensatz angebe oder so ähnlich?

Danke im voraus,
mit freundlichen Grüßen

Pablo ;)
 
Hallo,

danke erstmal für den Tipp.

Jetzt weiß ich leider nicht, wie ich das mache. Ich habe schon einiges Probiert, aber das beste Ergebnis war ein ? anstatt eines ß.

Ich habe auch in dem Dokument nachgesehen, dort steht bei der Schriftart, das es Ansi Kodiert ist.
Die Schriftart ist Courier, Typ ist Type1, Orginalschrift CourierStd und Orginaltyp Type1.
Ich kann das Dokument leider nicht rausgeben, das es Interna enthält.

Die Funktion bei der ich die Kodierung übergebe ist folgende:
Code:
document.add(new Paragraph(line, FontFactory.getFont(FontFactory.COURIER, BaseFont.CP1252, 9)));
 
Hallo,

ja das habe ich auch schon Versucht, zur Wahl stehen hier noch Cp1250 und Cp1257.
Bei letzteren habe ich ein ? bekommen, was ja schonmal ein fortschritt ist (wenigstens die Richtige Taste auf der Tastatur :D )
Bei Cp1250 ändert sich nichts.
Ich habe auch schon mit FontFactory.defaultEncoding versucht, aber leider auch ohne Erfolg.

Ich kann an der Stelle ja auch einen eigenen String einstellen, also falls jemand das richtige Encoding weiß einfach posten pls ;)

Naja, danke für deine Hilfe, vielleicht fällt dir oder einem anderen Leser noch ein wie es gehen könnte. Ich bin mit meinem Latein am Ende -.-

MfG

Pablo ;)

PS: Hat jemand eine Übersicht, welche Encodings es gibt und wie sie heißen?
 
Hi,

an die Infos über die Quelle komme ich zZ nicht dran, das ist der Server einer Fremdfirma.
Wie die Daten gezogen wurden kann ich auch nicht sagen. Meines Wissens nach wurden sie aus einem Archiv exportiert.

Die Daten habe wir auf einer Festplatte bekommen. (Mittlerweile liegen die Daten auf unserm Windows Server.)

Das an der Stelle ein ß stehen soll, weiß ich aufgrund der dazugehörenden XML, die beim Export wohl mit erzeugt wurde.

Danke für die Links. Kann es sein das es gar nicht so ohne weiteres Möglich ist die Daten umzuwandel wenn sie schon auf einem Windows System liegen?

Edit: Mir ist noch eine Mögliche Ursache eingefallen. Im moment geb ich das Encoding bei der erstellung Zeile für Zeile an. Gibt es eine Möglichkeit das PDF-Übergreifend einzustellen?
 
Zuletzt bearbeitet:
Hallo,

wir haben das Problem gelöst. Der Fehler lag nicht beim Schreiben der Pdf, sondern beim Lesen der Quelle.

Code:
private static Charset inputCharset = Charset.forName("CP437");
....
InputStreamReader is = new InputStreamReader( new FileInputStream( input ), inputCharset);

Nochmal Danke an alle die versucht haben zu helfen.

MfG Pablo
 

Neue Beiträge

Zurück