PDFファイルからテキストを抽出する

Contents
[ ]

この記事では、PDFファイルからテキストを抽出する詳細について見ていきます。これらの抽出機能はすべて、PdfExtractorクラスにまとめられています。これらの機能をコードでどのように使用するかを見ていきましょう。

PdfExtractorクラスは、3種類の抽出機能を提供します。これらの3つのカテゴリは、テキスト、画像、および添付ファイルです。これらの3つのカテゴリのそれぞれで抽出を行うために、PdfExtractorはさまざまなメソッドを提供しており、最終的な出力を得るために連携して機能します。

たとえば、テキストを抽出するには、ExtractText、GetText、HasNextPageText、GetNextPageTextの3つのメソッドを使用できます。テキストの抽出を開始するには、まず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++;
            }
        }
    }
}