C#を使用してWord文書の画像を置き換える方法

画像はWord文書で非常に一般的な要素であり、Word文書を処理するときに、画像の追加、抽出、置換、削除などの操作を実行することがよくあります。この記事でどうやってC#および無料のWordコンポーネントFree Spire.Docを利用してWord文書の画像を置き換えるかを紹介しようと思います、よく分からない方にはぜひ読んでくださいね。

画像を置き換えるには二つの方法があります、それは文字で置き換えること、そして画像で置き換えることです。これからこういう二つの方法を詳細に紹介します。

文字で画像を置き換える

以下のは文字で画像を置き換えるコードになります:

//ドキュメントをロードする

Document document = new Document(@"テンプレート.docx");

int j = 1;

//ドキュメント内すべてのsectionをトラバースする

foreach (Section sec in document.Sections)

{

    //セクション内のすべての段落をトラバースする

    foreach (Paragraph para in sec.Paragraphs)

    {

        List<DocumentObject> pictures = new List<DocumentObject>();

        //段落内のすべてのサブ要素をトラバースする

        foreach (DocumentObject docObj in para.ChildObjects)

        {

            //段落内の画像を取得する

            if (docObj.DocumentObjectType == DocumentObjectType.Picture)

            {

                pictures.Add(docObj);

            }

        }

        foreach (DocumentObject pic in pictures)

        {

            //画像の位置を取得する(index)

            int index = para.ChildObjects.IndexOf(pic);

            //画像の位置にテキストを挿入する

            TextRange range = new TextRange(document);

            range.Text = string.Format("画像 {0}", j);

            para.ChildObjects.Insert(index, range);

            //画像を削除する

            para.ChildObjects.Remove(pic);

            j++;

        }

    }

}

//ドキュメントを保存する

document.SaveToFile(@"テキストを置き換える.docx", FileFormat.Docx);

置き換える前と置き換えた後の比較:

f:id:uha_noki:20211103163659p:plain

f:id:uha_noki:20211103163715p:plain

 画像で画像を置き換える

以下表示されたのは画像でWordドキュメント内指定された画像を置き換えるコードになります:

//ドキュメントをロードする

Document document = new Document(@"テンプレート.docx");

//ドキュメントの最初のセクションのすべての段落をトラバースする

foreach (Paragraph paragraph in document.Sections[0].Paragraphs)

{

    //段落のすべてのサブ要素をトラバースする

    foreach (DocumentObject docObj in paragraph.ChildObjects)

    {

        //段落内の画像を取得する

        if (docObj.DocumentObjectType == DocumentObjectType.Picture)

        {

            DocPicture picture = docObj as DocPicture;

            if (picture.Title == "Figure 1")

            {

                //"Figure1"というタイトルの画像を置き換える

                picture.LoadImage(Image.FromFile("いぬ画像.jpg"));

            }

        }

    }

}

//Saves the Word document

document.SaveToFile("ReplaceImage.docx");

置き換える前と置き換えた後の比較:

f:id:uha_noki:20211103164923p:plain

f:id:uha_noki:20211103164952p:plain

以上です、とても簡単で分かりやすいでしょう、最後まで読んでいただき、誠にありがとうございました。ではまた!