2016-12-04 6 views
0

Ich versuche, Text aus einer PDF-Datei mit pdfbox zu extrahieren. Ich kann jedoch nicht den gesamten Text aus einer Tabelle extrahieren. Siehe das Bild unten (von den pdf snipped)PdfBox - Text kann nicht aus der PDF-Datei extrahiert werden

enter image description here

ich in der Lage bin (einiger vertraulicher Text wurde hervorgehoben), um den Text aus dem ersten Tisch zu bekommen (in orange) und die 3. Tabelle (Allgemeine Information eins). Aber ich kann nichts aus der zweiten Tabelle extrahieren.

In der Ausgabe sehe ich nur ein paar Leerzeilen zwischen dem Ausgang der 1. und 3. Tabelle.

Hier ist mein Code.

PDDocument doc = PDDocument.load(new File("....")); 
PDFTextStripper pdfStripper = new PDFTextStripper(); 
String text = pdfStripper.getText(doc); 
System.out.println(text); 
doc.close(); 

Irgendwelche Eingaben oder Vorschläge?

+1

Sie sollten ein PDF zur Verfügung stellen, mit dem dies reproduzierbar ist. –

+0

https://pdfbox.apache.org/2.0/faq.html#notext "Wieso bekomme ich keinen Text aus dem PDF-Dokument?" –

+0

Können Sie diesen Text aus Adobe Reader kopieren und einfügen? – mkl

Antwort

0

Ich habe das Problem gefunden. Der Inhalt wurde angezeigt, wurde jedoch neu angeordnet.

In der PDF-Datei waren mehrere Tabellen hintereinander angeordnet. Der Inhalt dieser Tabelle wurde nach dem Inhalt einiger unmittelbar dahinter platzierter Tabellen angezeigt. Also zum Beispiel wenn ich 6 Tische hatte und das war der 2. Tisch von oben. Sein Inhalt wurde auf der 5. Position statt auf der 2. Position angezeigt.

Wie von Tilman in Kommentaren vorgeschlagen, die Verwendung von pdfStripper.setSortByPosition(true) Ergebnisse in erwarteten Inhalt in den erwarteten Orten.

+1

Verwenden Sie die Methode setSortByPosition(). Ohne es erhalten Sie die Zeichen in der Sequenz aus dem PDF selbst, die möglicherweise nützlich sein können oder nicht. –

+0

@TilmanHausderr Danke, das hat das Problem gelöst !! – AgentX

Verwandte Themen