Question

J'ai ce fichier PDF qui est disposé dans 5 colonnes.

Je l'ai regardé et regardé à travers le débordement de pile (et googlé crazily) et essayé toutes les solutions (y compris le dernier recours d'essayer Adobe Acrobat lui-même).

Cependant, pour une raison quelconque, je ne peux pas obtenir ces 5 colonnes au format csv / xls - comme je l'ai besoin d'eux disposés. En général, quand je les exporter, le format est horrible et toutes les entrées sont en ligne organisées par ligne avec une perte de données.

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

Voici un lien vers un extrait du fichier ci-dessus, mais je suis vraiment frustré et se suis à court d'options.

Était-ce utile?

La solution

iText (ou iTextSharp) pourrait faire, si vous pouvez lui donner les limites de ces 5 colonnes, et sont prêts à faire face à certains frais généraux (à savoir réanalysant le texte de la page pour chaque colonne)

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

doit être séparé Chaque ligne de texte par \n, il devient une simple question de l'analyse syntaxique de la chaîne.

Si vous voulez ne pas réanalyser la page entière pour chaque colonne, vous pouvez probablement trouver une implémentation personnalisée de FilteredTextRenderListener qui prendrait plusieurs paires auditeur / filtre. Vous pouvez ensuite analyser la chose une fois plutôt qu'une fois pour chaque colonne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top