C#を使用してWord文書から画像を抽出する方法

画像とテキストはWord文書で最も一般的な2つの要素です。Microsoft Wordを使用する際、文書内の画像を抽出する場合は、画像で右クリックして「名前を付けて保存」を選択し、画像の名前を編集してから保存すると解決できです。そして今日の記事は、主にC#および無料で使える.NET用のWordコンポーネントSpire.Doc for .NETを使用して、Word文書から画像を抽出する方法をシェアします。

こちらはテキストと画像を含むWordドキュメントです

詳細な手順および使用するコード

ステップ1:引用を追加します。

新しいVisualC#コンソールプロジェクトを作成し、参照を追加して、次の名前空間を使用します。

using System;

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

ステップ2:新しいWordドキュメントオブジェクトを作成し、画像を抽出したい Wordドキュメントをロードします。

Document document = new Document("sample.docx");

ステップ3:ドキュメント内のすべてのセクションをトラバースし、画像を見つけて抽出し、保存します。

int index = 0;

 

foreach (Section section in document.Sections)

{

    foreach (Paragraph paragraph in section.Paragraphs)

    {

        foreach (DocumentObject docObject in paragraph.ChildObjects)

        {

            if (docObject.DocumentObjectType == DocumentObjectType.Picture)

            {

                DocPicture picture = docObject as DocPicture;

 

                String imageName = String.Format(@"images\画像-{0}.png", index);

 

                picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);

                index++;

            }

        }

    }

}

完全なるコード

using System;

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

using System.Drawing;

 

namespace Extract_image_from_word

{

    class Program

    {

        static void Main(string[] args)

        {

            Document document = new Document("C:\\Users\\Administrator\\Desktop\\sample.docx");

            int index = 0;

 

            foreach (Section section in document.Sections)

            {

                foreach (Paragraph paragraph in section.Paragraphs)

                {

                    foreach (DocumentObject docObject in paragraph.ChildObjects)

                    {

                        if (docObject.DocumentObjectType == DocumentObjectType.Picture)

                        {

                            DocPicture picture = docObject as DocPicture;

 

                            String imageName = String.Format(@"images\画像-{0}.png", index);

 

                            picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);

                            index++;

                        }

                    }

                }

            }

        }

    }

}

抽出された画像は以下のように

 

結語

今回のWord文書から画像を抽出する方法は以上でした、最後まで読んでいただきありがとうございました。