.NET で PDF からテキストを抽出する方法

.NET で PDF からテキストを抽出する方法

この記事では、 .NET のための Aspose.PDF テキストエクストラクターを使用して PDF ドキュメントから文書を抽出する方法を示しています. あなたは、すべてのサポートされた抽出すモード(純粋、原料、平ら)を使用し、個々のまたは複数の PDF のワークフローを自動化することを学びます。

現実世界問題

PDF から手動でテキストをコピーすることは不効率でエラー防止です データ分析、ドキュメント移行、またはアーカイブのアプリケーションでは、自動テクスト抽出は一貫性、スピード、正確さを保証します。

ソリューション概要

Aspose.PDF Text Extractor for .NET は、さまざまなフォーマットでテキストを抽出するための清潔でプログラミング可能なインターフェイスを提供します。

原則

  • Visual Studio 2019 以降
  • .NET 6.0 またはそれ以降
  • NuGet を介してインストールされた .NET のための Aspose.PDF
PM> Install-Package Aspose.PDF

ステップ・ステップ・実施

ステップ1:インストールおよび設定 Aspose.PDF

using Aspose.Pdf.Plugins;
using System.IO;

ステップ2:デフォルト(Raw)モードでテキストを抽出する

using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(); // Raw mode by default
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

ステップ3:純粋または平らなモードでテキストを抽出する

  • クリーンモード: 相対ポジションを保存し、調整のためのスペースを追加します。
  • プランモード: ストリップフォーマット、最小スペースでテキスト出力。
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure); // Or .Plain
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

使用ケース&アプリケーション(コード変数)

1. Batch 複数のPDFからテキストを抽出する

string[] files = Directory.GetFiles(@"C:\PDFs", "*.pdf");
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
    foreach (var file in files)
        options.AddInput(new FileDataSource(file));
    var resultContainer = extractor.Process(options);
    for (int i = 0; i < resultContainer.ResultCollection.Count; i++)
    {
        string extracted = resultContainer.ResultCollection[i].ToString();
        // Save to disk, process, or analyze as needed
        File.WriteAllText($@"C:\PDFs\out\{Path.GetFileNameWithoutExtension(files[i])}.txt", extracted);
    }
}

2. 使用ケースに基づいて抽出モードを選択する

  • Pure を使用して、テーブルのようなレイアウトやスペース形式化を行います。
  • クリーンデータ抽出または分析のために Plain を使用します。
  • 処理されていないテキストのために Raw を使用します。

3. 投稿プロセス 抽出テキスト

抽出後、レゲックス、テキストクリーニング、または他のサービス(検索、MLパイプなど)に結果を送信します。

4. データパイプで抽出を統合する

より幅広いETL、レポート、またはドキュメント管理のワークフローの一環として、標準的な .NET 実践を使用して自動抽出。

共通の課題と解決策

課題:複雑なPDF構造による不一致な出力ソリューション: 異なる抽出モード(純粋、平ら、原料)を試し、結果を比較します。

チャレンジ: バッチ抽出速度 ソリューション: 単一を使用する TextExtractor 最適なパフォーマンスのために、複数のファイルを一行で例と処理します。

チャレンジ: 特別なキャラクターまたは暗号化問題ソリューション: 最小限のフォーマットのための平らなモードを使用して、必要に応じてカスタマイズされたストレージ処理を適用します。

パフォーマンスと最良の実践

  • ドキュメントタイプの最適な結果を決定するために、すべての3つの抽出モードをテストします。
  • バッチ作業前にオリジナルのPDFを保存する
  • バッチワークにおける生産フィルネームと組織の取引
  • 強度のためのエラー処理とログインを統合する

完全実施例

using Aspose.Pdf.Plugins;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (var extractor = new TextExtractor())
        {
            var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Plain);
            options.AddInput(new FileDataSource(@"C:\PDFs\input.pdf"));
            var resultContainer = extractor.Process(options);
            string textExtracted = resultContainer.ResultCollection[0].ToString();
            File.WriteAllText(@"C:\PDFs\output.txt", textExtracted);
        }
    }
}

結論

Aspose.PDF Text Extractor for .NET は、複数のフォーマットでテキストを抽出するための強力で柔軟なツールを提供します - データ処理、アーカイブ、または分析に適しています。

 日本語