Pregunta

Tengo este archivo PDF que está organizado en 5 columnas.

Miré y miré a través del desbordamiento de la pila (y busqué en Google Crazily) y probé todas las soluciones (incluido el último recurso de probar Adobe Acrobat).

Sin embargo, por alguna razón no puedo obtener esas 5 columnas en formato CSV/XLS, ya que las necesito. Por lo general, cuando los exporto, el formato es horrible y todas las entradas están organizadas por línea con cierta pérdida de datos.

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

Aquí hay un enlace a un extracto del archivo anterior, pero realmente me estoy frustrando y me estoy quedando sin opciones.

¿Fue útil?

Solución

Itext (o ItextSharp) podría hacer esto, si puede darle los límites de esas 5 columnas, y está dispuesto a lidiar con algunos gastos generales (es decir, para el texto de la página para cada columna)

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

Cada línea de texto debe estar separada por \n, por lo que se convierte en una simple cuestión de análisis de cuerdas.

Si quisiera no reorganizar toda la página para cada columna, probablemente podría encontrar una implementación personalizada de FilteredTextRenderListener Eso tomaría múltiples pares de oyentes/filtros. Luego podría analizar todo una vez en lugar de una vez para cada columna.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top