Domanda

Ho questo file PDF che è organizzato in 5 colonne.

Ho guardato e guardato attraverso Stack Overflow (e Googled Grazy) e ho provato tutte le soluzioni (inclusa l'ultima risorsa di provare Adobe Acrobat stesso).

Tuttavia, per qualche motivo non riesco a ottenere quelle 5 colonne in formato CSV/XLS - poiché ne ho bisogno disposti. Di solito quando li esporto, il formato è orribile e tutte le voci sono disposte in linea con una certa perdita di dati.

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

Ecco un link a un estratto del file sopra, ma mi sto davvero frustrando e sto esaurendo le opzioni.

È stato utile?

Soluzione

Itext (o itextSharp) potrebbe farlo, se puoi dargli i confini di quelle 5 colonne e sei disposto a gestire un po 'di sovraccarico (vale a dire ripassare il testo della pagina per ogni colonna)

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));
}

Ogni riga di testo dovrebbe essere separata da \n, quindi diventa una semplice questione di analisi delle stringhe.

Se non volevi non riparare l'intera pagina per ogni colonna, probabilmente potresti trovare un'implementazione personalizzata di FilteredTextRenderListener Ciò richiederebbe più coppie di ascoltatore/filtro. Potresti quindi analizzare tutto una volta piuttosto che una volta per ogni colonna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top