B
bronks
Gast
Servus!
Ich zerlege gerade eine PDF mit dem PDFStreamParser der Apache PDFBox. Die PDF-Datei habe ich mit dem aktuellen MS Word erstellt. Einmal als PDF gespeichert und einmal über den Druckfilter. Die PDFs enthalten "AABCCDEEFGG"
Wenn ich das ByteArray des COSString vor dem TJ-Operator ausgebe erhalte ich zwei Byte je Zeichen. Eines mit NULL und das zweite enthält einen Wert. Für beide PDF erhalte ich diese Ausgabe.
Das Muster passt zu den Buchstaben aus der PDF, aber wie komme ich z.B. von 04 auf ein A? Was ist das für ein Encoding?
Ich zerlege gerade eine PDF mit dem PDFStreamParser der Apache PDFBox. Die PDF-Datei habe ich mit dem aktuellen MS Word erstellt. Einmal als PDF gespeichert und einmal über den Druckfilter. Die PDFs enthalten "AABCCDEEFGG"
Wenn ich das ByteArray des COSString vor dem TJ-Operator ausgebe erhalte ich zwei Byte je Zeichen. Eines mit NULL und das zweite enthält einen Wert. Für beide PDF erhalte ich diese Ausgabe.
Code:
0 4 0 4 0 17 0 18 0 18 0 24 0 28 0 28 0 38 0 39 0 39 0 3
Das Muster passt zu den Buchstaben aus der PDF, aber wie komme ich z.B. von 04 auf ein A? Was ist das für ein Encoding?
Code:
if (op.getName().equals("TJ")) {
COSArray cosArray = (COSArray) tokens.get(j - 1);
for (int k = 0; k < cosArray.size(); k++) {
Object arrElement = cosArray.getObject(k);
if (arrElement instanceof COSString) {
COSString cosString = (COSString) arrElement;
byte[] bytes = ((COSString) arrElement).getBytes();
for(byte b : bytes){
System.out.print(b + " ");
}
}
}
}
Zuletzt bearbeitet von einem Moderator: