2017-03-23 3 views
0

Mein LOGApache PDFBox-PDType1Font (HELVETICA) kodieren

Ausnahme ist java.lang.IllegalArgumentException: U + 0009 ('controlHT') in dieser Schrift nicht verfügbar ist Helvetica (generic: ArialMT) Codierung: WinAnsiEncoding ] mit Ursachen java.lang.IllegalArgumentException: U + 0009 ('controlHT') ist in dieser Schriftart Helvetica (generic: ArialMT) nicht verfügbar encoding: WinAnsiEncoding

+0

Mögliches Duplikat [Was für eine Nullpointer ist, und wie kann ich es beheben?] (Http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) – Matt

+0

Sie versuchen einfach, ein Zeichen zu zeichnen, für das die Schriftart keine Glyphe enthält. In Ihrem Fall ist es ein Steuerzeichen, die horizontale Registerkarte, für die kaum eine Schriftart eine Glyphe hat. – mkl

+0

https://pdfbox.apache.org/2.0/faq.html#fontencoding –

Antwort

1

Die Ausnahmemeldung

U + 0009 ("controlHT") ist in dieser Schrift nicht verfügbar Helvetica (generic: ArialMT) Codierung:

bedeutet WinAnsiEncoding, dass der Zeichenfolge Sie ein Zeichen zeichnen enthält, für die die Schriftart (insbesondere in ihrer ausgewählten Codierung) Anweisungen keine Glyphe Zeichnung zur Verfügung stellt.

Es zeigt auch, welches Zeichen ist der Täter: „U + 0009 (‚controlHT‘)“, das heißt ein Steuerzeichen, das horizontale Register. In der Tat, Steuerzeichen müssen vermieden werden, da kaum eine Schriftart Glyphen für sie enthält.

Wie Sie bereits in den Kommentaren zu Ihrer Frage bestätigt haben

string.replaceAll("\t", " ") funktionierte gut für mich

So horizontale Tabs scheinen die einzigen Problem Zeichen gewesen zu sein.

+0

so weit horizontal Tabs, was dazu führen, die Probleme, aber ich weiß nicht, ob string.replaceAll („\ t“, "„) ist der Leerlauf Lösung, wie ich jede Zeichenfolge zu überprüfen, habe ich im pdf bin Zeichnung .. –

+0

@marwn Nun, es wäre einfacher, wenn Sie sicherstellen könnten, dass die Quelle, von der Sie diese Zeichenfolgen abrufen, nur Zeichenketten mit Zeichen zur Verfügung stellt. Da du jedoch nicht angegeben hast, woher du sie bekommst, kann ich kaum raten, wie ich das genau machen soll. – mkl

+0

meine String-Quellen werden aus der Datenbank abgerufen, meist wurden die aus einem Formular eingefügt. –