texto tamaño reducir reconocimiento reconocer online jpg gratis escaneado como archivo pdf ocr

tamaño - Reconocer mediante programación el texto de los escaneos en un archivo PDF



reconocimiento de texto archivo pdf (10)

Tengo un archivo PDF que contiene datos que necesitamos importar a una base de datos. Los archivos parecen ser escaneos en formato pdf de texto alfanumérico impreso. Parece 10 pt Times New Roman.

¿Hay alguna herramienta o componente que pueda permitirme reconocer y analizar este texto?


Basado en la respuesta de Mark Brackett, creé un paquete de Nuget para envolver a pdftotext .

Es de código abierto , con orientación .NET estándar 1.6 y .NET Framework 4.5 .

Uso:

using XpdfNet; var pdfHelper = new XpdfHelper(); string content = pdfHelper.ToText("./pathToFile.pdf");



He publicado sobre el análisis de PDF en uno de mis blogs. Pulse este enlace:

http://devpinoy.org/blogs/marl/archive/2008/03/04/pdf-to-text-using-open-source-library-pdfbox-another-sample-for-grade-1-pupils.aspx

Editar: Enlace no funciona mucho. A continuación se cita de http://web.archive.org/web/20130507084207/http://devpinoy.org/blogs/marl/archive/2008/03/04/pdf-to-text-using-open-source-library-pdfbox-another-sample-for-grade-1-pupils.aspx

Bueno, lo siguiente se basa en ejemplos populares disponibles en la web. Lo que hace es "leer" el archivo pdf y enviarlo como texto en el control de cuadro de texto enriquecido en el formulario. La biblioteca PDFBox for .NET se puede descargar de sourceforge.

Debe agregar una referencia a IKVM.GNU.Classpath y PDFBox-0.7.3. Y también, FontBox-0.1.0-dev.dll y PDFBox-0.7.3.dll deben agregarse en la carpeta bin de su aplicación. Por alguna razón que no puedo recordar (tal vez es de uno de los tutoriales), también agregué al bin IKVM.GNU.Classpath.dll.

En la nota lateral, acabo de recibir mi copia de "Head First C #" (por sugerencia de Keith) de Amazon. ¡El libro es genial! Está realmente escrito para principiantes. Esta edición cubre VS2008 y el marco 3.5.

Aqui tienes...

/* Marlon Ribunal * Convert PDF To Text * *******************/ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.Drawing.Printing; using System.IO; using System.Text; using System.ComponentModel.Design; using System.ComponentModel; using org.pdfbox.pdmodel; using org.pdfbox.util; namespace MarlonRibunal.iPdfToText { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } void Button1Click(object sender, EventArgs e) { PDDocument doc = PDDocument.load("C://pdftoText//myPdfTest.pdf"); PDFTextStripper stripper = new PDFTextStripper(); richTextBox1.Text=(stripper.getText(doc)); } } }


He usado pdftohtml para eliminar tablas de PDF en CSV. Está basado en Xpdf , que es una herramienta más general, que incluye pdftotext . Simplemente lo envuelvo como un Proceso. Inicia una llamada desde C #.

Si está buscando algo un poco más de bricolaje, está la biblioteca iTextSharp , un puerto de iText de Java y PDFBox (sí, dice Java), pero tienen una versión de .NET a través de IKVM.NET . Aquí hay algunos artículos de CodeProject sobre el uso de iTextSharp y PDFBox desde C #.

Y, si realmente eres masoquista, puedes llamar al PDF IFilter de Adobe con interoperabilidad COM. Las especificaciones de IFilter son bastante simples, pero supongo que la sobrecarga de interoperabilidad sería significativa.

Editar: después de volver a leer la pregunta y las respuestas posteriores, queda claro que el OP trata con imágenes en su PDF. En ese caso, deberá extraer las imágenes (las bibliotecas de PDF anteriores pueden hacerlo con bastante facilidad) y ejecutarlas a través de un motor de OCR.

He usado MODI interactivamente antes, con resultados decentes. Es COM, por lo que llamarlo desde C # a través de interoperabilidad también es doable y bastante simple :

'' lifted from http://en.wikipedia.org/wiki/Microsoft_Office_Document_Imaging Dim inputFile As String = "C:/test/multipage.tif" Dim strRecText As String = "" Dim Doc1 As MODI.Document Doc1 = New MODI.Document Doc1.Create(inputFile) Doc1.OCR() '' this will ocr all pages of a multi-page tiff file Doc1.Save() '' this will save the deskewed reoriented images, and the OCR text, back to the inputFile For imageCounter As Integer = 0 To (Doc1.Images.Count - 1) '' work your way through each page of results strRecText &= Doc1.Images(imageCounter).Layout.Text '' this puts the ocr results into a string Next File.AppendAllText("C:/test/testmodi.txt", strRecText) '' write the OCR file out to disk Doc1.Close() '' clean up Doc1 = Nothing

Otros como Tesseract , pero tengo experiencia directa con él. He oído cosas buenas y malas al respecto, así que supongo que depende en gran medida de la calidad de su fuente.


No puede extraer texto escaneado de un PDF. Usted necesita un software de OCR. La buena noticia es que hay algunas aplicaciones de código abierto que puede probar y que la ruta de OCR será más fácil que usar una biblioteca de PDF para extraer texto. Echa un vistazo a Tesseract y GOCR.


Puede usar un módulo como el PDF de perl para extraer el texto. Y use otra herramienta para importar la información pertinente a la base de datos.

Estoy seguro de que hay componentes PDF para .NET, pero no he probado ninguno, así que no sé lo que es bueno.


Recientemente encontré ReportLab para Python.


Si el PDF es un escaneo de texto impreso, será difícil (involucra procesamiento de imágenes, reconocimiento de caracteres, etc.) hacerlo usted mismo. PDF generalmente almacenará los documentos escaneados como archivos JPEG internamente. Es mejor utilizar una herramienta de terceros (herramienta de OCR) que hace esto.