如何将图像从剪贴板粘贴到Word

时间:2015-10-09 06:41:31

标签: c# .net ms-word clipboard office-interop

我已经以编程方式将图片从word文档复制到剪贴板。

我想使用C#和Microsoft.Office.Interop.Word将该图像粘贴到另一个word文件中以供单词参考。

以下是代码:

foreach (Words.InlineShape shape in document.InlineShapes)
{
    if (shape != null)
    {
        if (shape.Type == Words.WdInlineShapeType.wdInlineShapePicture)
        {
             shape.Select();
             app.Selection.CopyAsPicture();
             Words.Document doc = app.Documents.Add();

             System.Drawing.Image img = null;
             if (Clipboard.ContainsImage())
             {
                  img = Clipboard.GetImage();
                  IDataObject idata = Clipboard.GetDataObject();
             }
         }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以直接使用Word自己的粘贴功能将其粘贴回来,而不是直接使用剪贴板。例如:

doc.Content.Paste();

但首先要问问自己是否真的需要使用剪贴板。使用剪贴板意味着您将在剪贴板上留下大图片(浪费内存),除非您清理它,这也意味着您丢失了剪贴板的原始内容,这可能会使您的用户感到不安。请考虑使用FormattedText的{​​{1}}代替:

Range

targetRange.FormattedText = sourceRange.FormattedText 属性复制所有文本和格式,包括任何嵌入的字段,表格,图片等。(您需要从包含锚点的范围开始)原始图片)。您可以通过FormattedText属性获取InlineShape的范围。 (对于浮动Range,您使用Shape属性。