4

c#VSTO

Word2010のリッチテキストコンテンツコントロールにキャプション付きの画像を挿入する方法。プロパティformattedtextは範囲オブジェクトも受け入れません。

4

1 に答える 1

0

リッチテキストコンテンツコントロールに画像を追加するのは非常に簡単ですRange.InlineShapes。コレクションに画像を追加するだけです。

Word文書から画像を取得するには、次のようにします。

  1. ドキュメント内のすべてのコンテンツコントロールをループします
  2. コンテンツコントロールに画像がある場合は、それをクリップボードにコピーします
  3. クリップボードからImageオブジェクトを取得します
  4. イメージに対して必要な処理を実行します(ディスク、データベースなどに保存)

次に例を示します。

System.Windows.Forms.dllへの参照を追加して、クリップボードクラスの使用を許可します

    string imagePath = @"D:\microsoft.jpg";
    string title = "Microsoft";
    Word.ContentControls cc = this.Application.ActiveDocument.ContentControls;

    //Add a rich content control,add an image to the rich content control
    var richContentControl = cc.Add(Word.WdContentControlType.wdContentControlRichText);
    richContentControl.Range.FormattedText.Text = title;

    if (System.IO.File.Exists(imagePath))
    {
        Word.InlineShape image = richContentControl.Range.InlineShapes.AddPicture(imagePath);
        image.Height = 70;
        image.Width = 100;

        //Retrieve all images from content controls and save to disk
        foreach (Word.ContentControl c in cc)
        {
            if (c.Range.InlineShapes.Count > 0)
            {
                foreach (Word.InlineShape shape in c.Range.InlineShapes)
                {
                    shape.Range.Copy();
                    if (System.Windows.Forms.Clipboard.ContainsImage())
                    {
                        System.Drawing.Image clipboardImage = Clipboard.GetImage();
                        string path = System.IO.Path.Combine(@"D:\imageName.jpg");
                        clipboardImage.Save(path);
                    }
                    Clipboard.Clear();
                }
            }
        }
    }
于 2013-01-19T14:24:16.200 に答える