チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.Doc for .NET»テキスト»C#/VB.NET:Word 文書からテキストと画像を抽出する方法
2022-11-14

C#/VB.NET:Word 文書からテキストと画像を抽出する方法

Word ドキュメントから内容を抽出して、別の用途に使用したい場合があります。例えば、Word ドキュメントからテキストや画像を抽出し、それらを再配列して新しいドキュメントを作成することができます。これは、Spire.Doc for .NET を使用することによって簡単に達成することができます。このツールは、Word ドキュメント内のあらゆる種類の要素を取得し、それらをエクスポート、再配列、または変更することを可能にします。この記事では、Spire.Doc for .NET を使用して Word 文書からテキストと画像を抽出する方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word 文書からテキストを抽出する

テキストを抽出するには、Paragraph.Text プロパティを使って段落内のすべてのテキストを取得し、StringBuilder.AppendLine() メソッドを使って StringBuilder クラスのインスタンスにそれを入れます。最後に、テキストを TXT ファイルに書き出すことができます。

詳しい手順は以下の通りです。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • StringBuilder クラスのインスタンスを作成します。
  • 文書内の各セクションの各段落を取得します。
  • Paragraph.Text プロパティを使って指定した段落のテキストを取得し、StringBuilder.AppendLine() メソッドを使って抽出したテキストを StringBuilder クラスのインスタンスに追加します。
  • 新規に txt ファイルを作成し、File.WriteAllText() メソッドを使用して抽出したテキストをファイルに書き込みます。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using System.Text;
using System.IO;

namespace ExtractTextfromWord
{
    class ExtractText
    {
        static void Main(string[] args)
        {
            //Documentクラスのインスタンスを作成する
            Document document = new Document();

            //Word文書の読み込み
            document.LoadFromFile("C:/洞窟の芸術.docx");

            //StringBuilderクラスのインスタンスを作成する
            StringBuilder sb = new StringBuilder();

            //Word文書からテキストを抽出し、StringBuilderクラスのインスタンスに保存する
            foreach (Section section in document.Sections)
            {
                foreach (Paragraph paragraph in section.Paragraphs)
                {
                    sb.AppendLine(paragraph.Text);
                }
            }

            //新たにtxtファイルを作成し、抽出したテキストを保存する
            File.WriteAllText("テキストの抽出.txt", sb.ToString());
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports System.Text
Imports System.IO

Namespace ExtractTextfromWord
    Class ExtractText
        Shared Sub Main(ByVal args() As String)
            'Documentクラスのインスタンスを作成する
            Dim document As Document = New Document()

            'Word文書の読み込み
            document.LoadFromFile("C:/洞窟の芸術.docx")

            'StringBuilderクラスのインスタンスを作成する
            Dim sb As StringBuilder = New StringBuilder()

            'Word文書からテキストを抽出し、StringBuilderクラスのインスタンスに保存する
            Dim section As Section
            For Each section In document.Sections
                Dim paragraph As Paragraph
                For Each paragraph In section.Paragraphs
                    sb.AppendLine(paragraph.Text)
                Next
            Next

            '新たにtxtファイルを作成し、抽出したテキストを保存する
            File.WriteAllText("テキストの抽出.txt", sb.ToString())
        End Sub
    End Class
End Namespace

C#/VB.NET:Word 文書からテキストと画像を抽出する方法

Word 文書から画像を抽出する

Word ドキュメントから画像を抽出するには、各段落にあるオブジェクトを取得し、それが画像であるかどうかを検出します。そして、それらの画像オブジェクトを PNG ファイルとして保存します。

  • Document クラスのインスタンスを作成し、Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • 文書内の各セクションの各段落を取得します。
  • 特定の段落の各文書オブジェクトを取得します。
  • 文書オブジェクトのタイプが画像であるかどうかを判断します。画像であれば、DocPicture.Image.Save(String, ImageFormat) メソッドでドキュメントから画像を保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace ExtractImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスのオブジェクトを作成する
            Document document = new Document();

            //Word文書の読み込み
            document.LoadFromFile("C:/洞窟の芸術.docx");
            int index = 0;

            //文書の各セクションを取得する
            foreach (Section section in document.Sections)
            {
                //セクションの各段落を取得する
                foreach (Paragraph paragraph in section.Paragraphs)
                {
                    //指定された段落の各文書オブジェクトを取得する
                    foreach (DocumentObject docObject in paragraph.ChildObjects)
                    {
                        //DocumentObjectTypeが画像であれば、ファイルに保存する
                        if (docObject.DocumentObjectType == DocumentObjectType.Picture)
                        {
                            DocPicture picture = docObject as DocPicture;
                            picture.Image.Save(string.Format("画像/画像{0}.png", index), System.Drawing.Imaging.ImageFormat.Png);
                            index++;
                        }
                    }
                }
            }
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace ExtractImage
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentクラスのオブジェクトを作成する
            Dim document As Document = New Document()

            'Word文書の読み込み
            document.LoadFromFile("C:/洞窟の芸術.docx")
            Dim index As Integer = 0

            '文書の各セクションを取得する
            Dim section As Section
            For Each section In document.Sections
                'セクションの各段落を取得する
                Dim paragraph As Paragraph
                For Each paragraph In section.Paragraphs
                    '指定された段落の各文書オブジェクトを取得する
                    Dim docObject As DocumentObject
                    For Each docObject In paragraph.ChildObjects
                        'DocumentObjectTypeが画像であれば、ファイルに保存する
                        If docObject.DocumentObjectType = DocumentObjectType.Picture Then
                            Dim picture As DocPicture = docObject
                            picture.Image.Save(String.Format("画像/画像{0}.png", index), System.Drawing.Imaging.ImageFormat.Png)
                            index = index + 1
                        End If
                    Next
                Next
            Next
        End Sub
    End Class
End Namespace

C#/VB.NET:Word 文書からテキストと画像を抽出する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 590 times