Frage

Ich habe diese PDF -Datei, die in 5 Spalten angeordnet ist.

Ich habe den Stapelüberlauf durchgesehen und durchgesehen (und verrückt gegoogelt) und habe alle Lösungen ausprobiert (einschließlich des letzten Auswegs von Adobe Acrobat selbst).

Aus irgendeinem Grund kann ich diese 5 Spalten im CSV/XLS -Format jedoch nicht erhalten - da ich sie angeordnet bin. Normalerweise ist das Format, wenn ich sie exportiere, schrecklich und alle Einträge werden mit einem gewissen Datenverlust eine Linie angeordnet.

http://www.2shared.com/document/page4a1t/ex1.html

Hier ist ein Link zu einem Auszug der obigen Datei, aber ich bin wirklich frustriert und habe keine Optionen mehr.

War es hilfreich?

Lösung

ITEXT (oder ITEXTSHARP) könnte dies tun, wenn Sie ihm die Grenzen dieser 5 Spalten geben können und bereit sind, sich mit einem Overhead zu befassen (nämlich den Text der Seite für jede Spalte neu zu verärgern)

Rectangle2D columnBoxArray[] = buildColumnBoxes();
ArrayList<String> columnTexts = new ArrayList<String>(columnBoxArray.length);
For (Rectangle2D columnBBox : columnBoxArray) {

  FilteredTextRenderListener textInRectStrategy = 
    new FilteredTextRenderListener(new LocationTextExtractionStrategy(), 
      new RegionTextRenderFilter( columnBBox ) );

  columnTexts.add(PdfTextExtractor.extractText( reader, pageNum, textInRectStrategy));
}

Jede Textzeile sollte durch getrennt werden \n, Es wird also eine einfache Angelegenheit der Saite analysiert.

Wenn Sie die gesamte Seite für jede Spalte nicht reparieren möchten, können Sie wahrscheinlich eine benutzerdefinierte Implementierung von erstellen FilteredTextRenderListener Das würde mehrere Hörer-/Filterpaare benötigen. Sie könnten dann das Ganze einmal anstatt für jede Spalte einmal analysieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top