Extraer Texto de un Archivo PDF

Contents
[ ]

En este artículo, examinaremos los detalles de la extracción de texto de un archivo PDF. Todas estas características de extracción se proporcionan en un solo lugar, en la clase PdfExtractor. Veremos cómo usar estas características en nuestro código.

La clase PdfExtractor proporciona tres tipos de capacidades de extracción. Estas tres categorías son Texto, Imágenes y Adjuntos. Para realizar la extracción en cada una de estas tres categorías, PdfExtractor proporciona varios métodos que trabajan juntos para darte el resultado final.

Por ejemplo, para extraer texto puedes usar tres métodos, es decir, ExtractText, GetText, HasNextPageText and GetNextPageText. Ahora, para comenzar a extraer texto, primero debes llamar al método ExtractText; esto extraerá el texto del archivo PDF y lo almacenará en memoria. Después de eso, el método GetText tomará este texto extraído y lo guardará en el disco en un lugar especificado en un archivo. HasNextPageText te ayuda a recorrer cada página y verificar si la siguiente página tiene algún texto o no. Si contiene algún texto, entonces GetNextPageText te ayudará a guardar el texto de una página individual en el archivo.

public static void ExtractText()
{
    bool WholeText = true;
    // Crear un objeto de la clase PdfExtractor
    PdfExtractor pdfExtractor = new PdfExtractor();

    // Vincular el PDF de entrada
    pdfExtractor.BindPdf(_dataDir + "sample.pdf");

    // ExtractText
    pdfExtractor.ExtractText();

    if (!WholeText)
    {
        pdfExtractor.GetText(_dataDir + "sample.txt");
    }
    else
    {
        // Extraer el texto en archivos separados
        int pageNumber = 1;
        while (pdfExtractor.HasNextPageText())
        {
            pdfExtractor.GetNextPageText($"{_dataDir}\\sample{pageNumber:D3}.txt");
            pageNumber++;
        }
    }
}

To Extract the Text Extraction Mode use the following code:

public static void ExtractTextExtractonMode()
{
    bool WholeText = true;
    // Crear un objeto de la clase PdfExtractor
    PdfExtractor pdfExtractor = new PdfExtractor();

    // Enlazar el PDF de entrada
    pdfExtractor.BindPdf(_dataDir + "sample.pdf");

    // Extraer texto
    // pdfExtractor.ExtractTextMode = 0; //modo puro
    pdfExtractor.ExtractTextMode = 1; //modo sin procesar
    pdfExtractor.ExtractText();


    if (!WholeText)
    {
        pdfExtractor.GetText(_dataDir + "sample.txt");
    }
    else
    {
        // Extraer el texto en archivos separados
        int pageNumber = 1;
        while (pdfExtractor.HasNextPageText())
        {
            pdfExtractor.GetNextPageText($"{_dataDir}\\sample{pageNumber:D3}.txt");
            pageNumber++;
        }
    }
}