2011-08-05 61 views
7

Quiero leer tablas dentro de un archivo pdf, tengo un archivo pdf con una tabla adentro, que SDK se usa en C# para reconocer tablas dentro de pdfs y algún mecanismo para leer celda por celda ?Leer tablas de un archivo PDF usando C#

¿Puede alguien sugerir por favor, si conoce alguna dlls que reconocen tablas dentro de pdfs.

+2

Esto podría ajustarse mejor a Stackoverflow. –

+0

Usted sabe que los archivos PDF son texto claro y usted puede analizar esta información en su nombre ¿no? – CrazyDart

Respuesta

4

iTextPdf puede ser lo que estás buscando. No lo he usado pero he escuchado cosas muy buenas. Además, es de código abierto y gratuito (para uso no comercial), lo que siempre es agradable.

+3

Es solo gratuito para uso no com. Tienes que pagar si quieres usarlo en un producto comercial. – CrazyDart

+0

@CrazyDart - He actualizado mi respuesta para reflejar su comentario. – Jetti

2

PDFBox

De IKVM.NET ha sido utilizado con éxito para analizar documentos PDF en .NET.

Utilizando el PDFBox para analizar archivos PDF es bastante fácil:

private static string parseUsingPDFBox(string filename) 
{ 
    PDDocument doc = PDDocument.load(filename); 
    PDFTextStripper stripper = new PDFTextStripper(); 
    return stripper.getText(doc); 
} 
6

No hay concepto de "mesa" en formato de archivo PDF, ya que su gramática vectorial se hace justo de sencillo primitivas que tratan con trayectos (es decir, líneas, curvas, contornos de fuentes ...) y contenido muestreado (es decir, imágenes de mapa de bits).

Sin embargo, un buen algoritmo heurístico podría detectar la débil presencia de una representación llamada "tabla" (es decir, típicamente cruzando líneas entremezcladas con contenidos).

0

Necesitaba lo mismo para un proyecto. Mi proceso es un poco elevado, pero funciona bastante bien. Cuando lo haya pulido un poco mejor, lo publicaré. Aquí está el flujo básico:

  • uso libpdf para convertir pdf a JSON
  • archivo JSON importación para conseguir cadenas de texto con sus coordenadas
  • uso Ghostscript para convertir pdf a la imagen
  • uso Aforge blobcounter para conseguir mesa
  • células
  • células de grupo en las tablas
  • ubicación de la celda uso y tamaño para determinar qué cadenas de texto que contiene
+0

Esto seguramente parece mucho sobrecargado. ¿Lo hiciste funcionar bien? –

1

Yo sé que esto es una cuestión de edad, sino alguien que pueda necesitar

introducción "bastante obvio":
archivos PDF son gráficos corriente de objeto (por ejemplo líneas) y texto. Cuando se renderiza el PDF, el ojo humano comprende que hay tablas debido a las líneas y el texto entre ellos.

La (mi) la solución
A partir de un lector de PDF (iTextSharp) es necesario: 1.
leer las líneas (con suerte sólo las líneas verticales y horizontales);
2. une las líneas (una línea de una tabla podría tener varias líneas, por ejemplo, una por celda);
3. entender dónde están las tablas (a veces haciendo algunas hipótesis en función de sus necesidades);
4.opcionalmente encuentre el texto fuera de las tablas (mejor para guardar todo el texto) e insértelo en párrafos;
5. Insertar texto dentro de las celdas de la tabla

Si necesitas algo ya escrito a partir de (trabajando para mis archivos PDF) se puede encontrar algo aquí https://github.com/bubibubi/ExtractTablesFromPdf
Utiliza la versión GPL de iTextSharp.