如何将图像从剪贴板粘贴到Word
How to paste image from clipboard to Word
我以编程方式将 word 文档中的图像复制到剪贴板。
我想使用 C# 将该图像粘贴到另一个 word 文件中,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();
}
}
}
}
您无需直接使用剪贴板,只需使用 Word 自带的粘贴功能将其粘贴回去即可。例如:
doc.Content.Paste();
但首先问问自己是否真的需要使用剪贴板。使用剪贴板意味着你会在剪贴板上留下一张大图片(浪费内存),除非你清理它,这也意味着你丢失了剪贴板的原始内容,这可能会让你的用户感到不安。考虑使用 Range
的 FormattedText
代替:
targetRange.FormattedText = sourceRange.FormattedText
FormattedText
属性 复制所有文本 和格式 并且包括任何嵌入的字段、表格、图片等。(您需要开始范围包括原始图片的锚点)。您可以通过 Range
属性 获得 InlineShape
的范围。 (对于浮动 Shape
,您将使用 Anchor
属性)。
我以编程方式将 word 文档中的图像复制到剪贴板。
我想使用 C# 将该图像粘贴到另一个 word 文件中,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();
}
}
}
}
您无需直接使用剪贴板,只需使用 Word 自带的粘贴功能将其粘贴回去即可。例如:
doc.Content.Paste();
但首先问问自己是否真的需要使用剪贴板。使用剪贴板意味着你会在剪贴板上留下一张大图片(浪费内存),除非你清理它,这也意味着你丢失了剪贴板的原始内容,这可能会让你的用户感到不安。考虑使用 Range
的 FormattedText
代替:
targetRange.FormattedText = sourceRange.FormattedText
FormattedText
属性 复制所有文本 和格式 并且包括任何嵌入的字段、表格、图片等。(您需要开始范围包括原始图片的锚点)。您可以通过 Range
属性 获得 InlineShape
的范围。 (对于浮动 Shape
,您将使用 Anchor
属性)。