2012-03-30 45 views
16

El año pasado, realicé una aplicación en Java usando PDFBox para obtener el texto en bruto en algunos archivos PDF y ahora tengo que portar esa aplicación a C++.¿Hay una biblioteca C++ para extraer texto de un archivo PDF como PDFBox para Java?

Quería saber cuál era la mejor alternativa de C++ para lograr lo que necesito.

Voy a dar un ejemplo en el caso de que ayuda:

La mayoría de los archivos se vería así: http://www.jumbala.net/backup/league.pdf

Con PDFBox, usando ese archivo, leer cada línea en la página 2 y la mayor parte de la página 3 sería muestra todos los datos de una línea, separados por un espacio en lugar de mantenerlo en una cuadrícula como lo está ahora.

Así que la primera línea relevante en la página 2 podría tener este aspecto:

FB 847 - Tremblay, Gérard 179,63 56 16167 90 268 s27 p3 669 s14 199 223 193 615 

o algo así, ya que hay cambios menores en el orden en que aparecen, pero no se preocupan por que mientras líneas similares dan el mismo resultado ya que solo las analizo y pongo los valores que necesito en diferentes variables.

Entonces, sabiendo todo eso, ¿hay una biblioteca que pueda usar en un programa C++ para obtener resultados similares?

Editar: Después de mirar enlace de sacredFaith en http://www.codeproject.com/Articles/7056/Code-to-extract-plain-text-from-a-PDF-file y probarlo, estoy recibiendo una salida extraño como tales para el archivo de ejemplo que he mencionado antes:

http://www.jumbala.net/backup/league.pdf.txt

Las partes que realmente necesitan están en los personajes extraños al principio. Uso de Adobe Acrobat Reader X y mediante Guardar como ... Texto (accesible), me sale el siguiente resultado:

http://www.jumbala.net/backup/league_good.pdf.txt

que es aproximadamente lo que me pasa en Java utilizando PDFBox y lo que yo quiero conseguir como salida en C++.

+0

Tal vez esto puede ayudar http://stackoverflow.com/questions/3784554/creating-a-pdf-reader-in-c – grifos

+0

@grifos Lo miré y podría verlo un poco más en detalle más adelante, pero preferiría tener una biblioteca ya hecha, ya que preferiría no tener que leer todo el documento de especificaciones PDF. El gran enlace que publicaste, sin embargo, podría ser útil más tarde, ¡gracias! –

+0

En el enlace también hablan sobre una biblioteca de C++ PoDoFo, que le permite analizar el pdf y extraer información. – grifos

Respuesta

10

Xpdf ++ es una aplicación/biblioteca de C que incluye herramientas para extraer texto de un archivo PDF.

+5

Acabo de descargar la versión precompilada de Xpdf y el .exe desde la línea de comandos funciona muy bien, obtengo el resultado que quiero (e incluso mejor que usar PDFBox si uso la opción -layout). Tengo una pregunta, sin embargo ... ¿Hay algún lugar donde pueda ver cómo llamar a los métodos en código en lugar de usar el .exe? Voy a mirar por mi cuenta, pero como pareces estar familiarizado con la biblioteca, sería aún mejor si pudieras decirme dónde empezar a buscar. ¡Muchas gracias! –

+0

El equipo de XPDF proporciona versiones comerciales de sus bibliotecas junto con soporte opcional en http://www.glyphandcog.com/XpdfText.html –

2

nunca he utilizado la siguiente, pero después de algunas google encontré esto:

http://www.codeproject.com/Articles/7056/Code-to-extract-plain-text-from-a-PDF-file

+0

¡Lo echaré un vistazo, gracias! ¡Marcaré su respuesta como aceptada si puedo hacerlo funcionar como quiero! –

+0

Lamentablemente, lo probé y no funciona de la manera que quiero (algunas partes del texto extraen bien, pero la mayoría del documento está hecho de símbolos extraños) –

+1

¡Lo siento por ese hombre! ¡Parece que encontraste lo que estabas buscando gracias a Charles! – sacredfaith

3

Dado que eso es lo que buscas: PoDoFo es la biblioteca C++ para analizar/leer/modificar o crear archivos pdf. La biblioteca es multiplataforma.

Cuestiones relacionadas