Extraer texto de un archivo PDF

Contents
[ ]

En este artículo, analizaremos 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 utilizar 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 Archivos 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 y 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 la ubicación especificada en un archivo. HasNextPageText te ayuda a recorrer cada página y verificar si la siguiente página tiene texto o no. Si contiene texto, entonces GetNextPageText te ayudará a guardar el texto de una página individual en el archivo.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractText()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Text();

    bool wholeText = true;
    // Create an object of the PdfExtractor class
    using (var pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        pdfExtractor.BindPdf(dataDir + "sample.pdf");

        // ExtractText
        pdfExtractor.ExtractText();

        if (!wholeText)
        {
            pdfExtractor.GetText(dataDir + "sample.txt");
        }
        else
        {
            // Extract the text into separate files
            int pageNumber = 1;
            while (pdfExtractor.HasNextPageText())
            {
                pdfExtractor.GetNextPageText($"{dataDir}\\sample{pageNumber:D3}.txt");
                pageNumber++;
            }
        }
    }
}

Para extraer el modo de extracción de texto, utiliza el siguiente código:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractTextExtractonMode()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Text();

    bool wholeText = true;
    // Create an object of the PdfExtractor class
    using (var pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        pdfExtractor.BindPdf(dataDir + "ExtractTextExtractonMode.pdf");

        // ExtractText
        // pdfExtractor.ExtractTextMode = 0; // pure mode
        pdfExtractor.ExtractTextMode = 1; // raw mode
        pdfExtractor.ExtractText();

        if (!wholeText)
        {
            pdfExtractor.GetText(dataDir + "ExtractTextExtractonMode_out.txt");
        }
        else
        {
            // Extract the text into separate files
            int pageNumber = 1;
            while (pdfExtractor.HasNextPageText())
            {
                pdfExtractor.GetNextPageText($"{dataDir}\\sample{pageNumber:D3}.txt");
                pageNumber++;
            }
        }
    }
}