DOCXからテキストを抽出する

ほとんどのデータは、ドキュメント、画像、およびWeb上で視覚的なテキストとして表されるため、テキストデータの抽出が最も必要な場合があります。 WordまたはPDFドキュメントからテキストまたは画像を抽出する必要がある場合があります。 C#開発者は、プログラムでドキュメントからテキストを簡単に抽出できます。この記事では、C#を使用してDOCまたはDOCXドキュメントからテキストを抽出する方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

テキスト抽出用のC#API

DOCXドキュメントからテキストを抽出するためにGroupDocs.Parserfor.NETAPIを使用します。 Word、PDF、Excel、Powerpointなどのサポートされているファイル形式のドキュメントからテキスト、メタデータ、画像を抽出できます。また、サポートされている形式のファイルからの生のフォーマットされた構造化テキストとメタデータの抽出もサポートしています。

APIのDLLをダウンロードするか、NuGetを使用してインストールできます。

Install-Package GroupDocs.Parser

C#を使用してDOCXからテキストを抽出する

以下に説明する簡単な手順に従うことで、任意のドキュメントを簡単に解析してテキストを抽出できます。

  • パーサークラスのインスタンスを作成します
  • ファイルパスを指定します
  • ParserクラスのGetTextメソッドを呼び出して、テキストを抽出します
  • TextReaderクラスオブジェクトで結果を取得します
  • TextReaderクラスのReadToEndメソッドを呼び出して結果を表示する

次のコードサンプルは、C#を使用してDOCXファイルからテキストを抽出する方法を示しています。

// パーサークラスのインスタンスを作成します
Parser parser = new Parser(@"C:\Files\sample.docx");

// リーダーにテキストを抽出します
using (TextReader reader = parser.GetText())
{
    // ドキュメントからテキストを印刷する
    // テキスト抽出がサポートされていない場合、リーダーはnullです
    Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}
C#を使用してDOCXからテキストを抽出する

C#を使用してDOCXからテキストを抽出する

Parserクラスは、テキストと画像の解析機能と抽出を提供するメインクラスです。このクラスのコンストラクタで入力ファイルのパスを指定しました。

ParserクラスのGetText()メソッドは、指定されたドキュメントからテキストを抽出します。

C#を使用してDOCXからフォーマットされたテキストを取得する

以下に説明する簡単な手順に従うことで、スタイルの書式設定を失うことなく、Word文書を簡単に解析してテキストを抽出できます。

  • パーサークラスのインスタンスを作成します
  • ファイルパスを指定します
  • FormattedTextOptionsを定義します
  • FormattedTextModeをHTMLに設定します
  • ParserクラスのGetFormattedTextメソッドを呼び出して、テキストを抽出します
  • TextReaderクラスオブジェクトで結果を取得します
  • TextReaderクラスのReadToEndメソッドを呼び出して結果を表示する

次のコードサンプルは、C#を使用してDOCXファイルからフォーマットされたテキストを抽出する方法を示しています。

// パーサークラスのインスタンスを作成します
Parser parser = new Parser(@"C:\Files\sample.docx");

// フォーマットされたテキストをリーダーに抽出します
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
    // ドキュメントからフォーマットされたテキストを印刷する
    // フォーマットされたテキスト抽出がサポートされていない場合、リーダーはnullです
    Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}
C#を使用してDOCXからフォーマットされたテキストを抽出する

C#を使用してDOCXからフォーマットされたテキストを抽出する

FormattedTextOptionsクラスは、抽出Modeなどのフォーマットされたテキスト抽出に使用されるオプションを提供します。ドキュメントテキストをHTMLとして抽出するHTMLに抽出モードを設定しました。

ParserクラスのGetFormattedText()メソッドは、指定されたドキュメントからフォーマットされたテキストを抽出します。

C#を使用してページからフォーマットされたテキストを抽出する

以下に説明する簡単な手順に従うことで、Word文書を簡単に解析し、文書の特定のページからフォーマットされたテキストを抽出できます。

  • パーサークラスのインスタンスを作成します
  • ファイルパスを指定します
  • FormattedTextがtrueかどうかを確認します
  • GetDocumentInfoを呼び出して、ページ数を取得します
  • PageCountがゼロでないか確認してください
  • FormattedTextOptionsを定義します
  • FormattedTextModeをHTMLに設定します
  • 各ページインデックスのGetFormattedTextメソッドを呼び出して、テキストを抽出します
  • TextReaderクラスオブジェクトで結果を取得します
  • TextReaderクラスのReadToEndメソッドを呼び出して結果を表示する

次のコードサンプルは、C#を使用してページからフォーマットされたテキストを1つずつ抽出する方法を示しています。

// パーサークラスのインスタンスを作成します
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
    // ドキュメントがフォーマットされたテキスト抽出をサポートしているかどうかを確認します
    if (!parser.Features.FormattedText)
    {
        Console.WriteLine("Document isn't supports formatted text extraction.");
        return;
    }

    // ドキュメント情報を取得する
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // ドキュメントにページがあるかどうかを確認します
    if (documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }

    // ページを繰り返します
    for (int p = 0; p < documentInfo.PageCount; p++)
    {
        // ページ番号を印刷する 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
        // フォーマットされたテキストをリーダーに抽出します
        using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
        {
            // ドキュメントからフォーマットされたテキストを印刷する
            // 以前にフォーマットされたテキスト抽出機能のサポートをチェックしたので、ヌルチェックを無視します
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
C#を使用してページからフォーマットされたテキストを抽出する

C#を使用してページからフォーマットされたテキストを抽出する

Parserクラスは、Featuresクラスを表すFeaturesプロパティを提供します。ドキュメントで機能がサポートされているかどうかを確認するために使用できます。サポートされている機能の詳細については、「サポートされている機能の取得」セクションを参照してください。

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C#を使用してWord文書からテキストを抽出する方法を学びました。 ドキュメントを使用して、GroupDocs.Parser for.NETAPIの詳細を確認できます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目