Tengo un archivo PDF, que contiene los datos que necesitamos para importar a una base de datos. Los archivos parecen estar pdf escaneados de impreso el texto alfanumérico. Se parece a 10 pt. Times New Roman.

Hay herramientas o componentes que me va a permitir reconocer y analizar este texto?

InformationsquelleAutor Rob | 2008-10-01

10 Comentarios

  1. 22

    He usado pdftohtml con éxito de la tira de tablas de PDF en formato CSV. Se basa en Xpdf, que es más una herramienta de propósito general, que incluye pdftotext. Yo simplemente envuelva como un Proceso.Empezar a llamar desde C#.

    Si usted está buscando algo un poco más DIY, hay la iTextSharp biblioteca – un puerto de Java iText – y PDFBox (sí, se dice que Java – pero ellos tienen una .NET versión manera de IKVM.NET). He aquí algunos CodeProject artículos sobre el uso de iTextSharp y PDFBox de C#.

    Y, si estás realmente un masoquista, se podría llamar en Adobe PDF IFilter con la interoperabilidad COM. El IFilter especificaciones es bastante simple, pero me imagino que la interoperabilidad sobrecarga sería significativo.

    Edit: Después de la re-lectura de la pregunta y de las respuestas, es evidente que el OP es tratar con imágenes en su PDF. En ese caso, usted necesita para extraer las imágenes (el PDF de las bibliotecas de arriba son capaces de hacer esto con bastante facilidad) y ejecutarlo a través de un motor de OCR.

    He usado MODI de forma interactiva antes, con resultados decentes. Es COM, por lo que llamar desde C# a través de la interoperabilidad es también factible 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 ella. He oído cosas buenas y malas sobre ella, así que me imagino que depende en gran medida de su calidad de origen.

  2. 6

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

    • Un documento pdf puede ser cualquier combinación de texto e imágenes. Si es que ya ocr de texto es innecesario.
  3. 5

    He publicado acerca de análisis de archivos 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

    Edit: el Enlace ya no funciona. A continuación citó 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

    Bien, el siguiente está basado en el popular ejemplos disponibles en la web.
    Lo que esto hace es «leer» el archivo pdf de salida y como un texto en el
    rico control de cuadro de texto en el formulario. El PDFBox para .Biblioteca de RED puede ser
    descargar desde sourceforge.

    Necesita agregar referencia a IKVM.GNU.Classpath & PDFBox-0.7.3. Y
    también, FontBox-0.1.0-dev.dll y PDFBox-0.7.3.dll deben ser agregados en
    la carpeta bin de la aplicación. Por alguna razón que no puedo recordar
    (tal vez este es uno de los tutoriales), también he añadido a la papelera
    IKVM.GNU.Classpath.dll.

    En la nota de lado, sólo tengo mi copia de «Cabeza de C#» (en la de Keith
    sugerencia) de Amazon. El libro es genial! Es realmente preparada para el
    los principiantes. Esta edición cubre VS2008 y el framework 3.5.

    Aquí la 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));
            }
    
         }
    }
    
  4. 1

    Puede utilizar un módulo de perl PDF para extraer el texto. Y el uso de otra herramienta para importar la información pertinente en la base de datos.

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

  5. 1

    Si el PDF es un exploraciones de texto impreso, va a ser duro (implica el procesamiento de la imagen, el carácter reconociendo etc.) para hacerlo usted mismo. PDF se suelen almacenar los documentos escaneados como archivos Jpeg internamente. Usted es mejor de usar una herramienta de terceros (OCR herramienta) que hace esto.

Dejar respuesta

Please enter your comment!
Please enter your name here