我已经以编程方式将图片从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();
}
}
}
}
答案 0 :(得分:0)
您可以直接使用Word自己的粘贴功能将其粘贴回来,而不是直接使用剪贴板。例如:
doc.Content.Paste();
但首先要问问自己是否真的需要使用剪贴板。使用剪贴板意味着您将在剪贴板上留下大图片(浪费内存),除非您清理它,这也意味着您丢失了剪贴板的原始内容,这可能会使您的用户感到不安。请考虑使用FormattedText
的{{1}}代替:
Range
targetRange.FormattedText = sourceRange.FormattedText
属性复制所有文本和格式,包括任何嵌入的字段,表格,图片等。(您需要从包含锚点的范围开始)原始图片)。您可以通过FormattedText
属性获取InlineShape
的范围。 (对于浮动Range
,您使用Shape
属性。