c#VSTO
Word2010のリッチテキストコンテンツコントロールにキャプション付きの画像を挿入する方法。プロパティformattedtextは範囲オブジェクトも受け入れません。
リッチテキストコンテンツコントロールに画像を追加するのは非常に簡単ですRange.InlineShapes
。コレクションに画像を追加するだけです。
Word文書から画像を取得するには、次のようにします。
次に例を示します。
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();
}
}
}
}