Извлечение текста из PDF файла

Contents
[ ]

В этой статье мы рассмотрим детали извлечения текста из PDF файла. Все эти функции извлечения предоставлены в одном месте, в классе PdfExtractor. Мы увидим, как использовать эти функции в нашем коде.

Класс PdfExtractor предоставляет три типа возможностей извлечения. Эти три категории - Текст, Изображения и Вложения. Для выполнения извлечения в каждой из этих трех категорий PdfExtractor предоставляет различные методы, которые работают вместе, чтобы дать вам окончательный результат.

Например, для извлечения текста вы можете использовать три метода, а именно ExtractText, GetText, HasNextPageText и GetNextPageText. Теперь, чтобы начать извлечение текста, прежде всего, вам нужно вызвать метод ExtractText; это извлечет текст из PDF файла и сохранит его в памяти. После этого метод GetText возьмет этот извлеченный текст и сохранит его на диске в указанном месте в файле. Метод HasNextPageText помогает вам пройти через каждую страницу и проверить, есть ли текст на следующей странице. Если он содержит текст, то GetNextPageText поможет вам сохранить текст отдельной страницы в файл.

// 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++;
            }
        }
    }
}

Чтобы использовать режим извлечения текста, используйте следующий код:

// 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++;
            }
        }
    }
}