以编程方式将图像添加到 Word 文档
Programatically add an image to a Word document
我想以编程方式将内存中的图像(位图)插入到 Word 文档中。
也就是我通过Microsoft.Office.Interop.Word在内存中创建了一个Word文档。然后我想将一系列位图图像依次附加到文档中并保存为.doc文件。
我一直在网上搜索,但我找到的唯一解决方案是
1) 将图像添加到剪贴板,然后使用 Microsoft.Office.Interop.Word.Selction.Paste().
将所选内容粘贴到打开的文档中
2) 将图像写入文件并使用 Microsoft.Office.Interop.Word.InlineShapes.AddPicture().
插入
虽然这两种方法都有效,但我发现它们非常笨拙,尤其是在应用程序处于 运行 时控制剪贴板的第一个选项。
还有其他方法吗?
您可以在 Selection 或特定的 Range 对象上使用 InsertFile。
注意: 这也需要将位图保存在硬盘上。我认为唯一在内存中添加图像可以使用剪贴板通过复制/粘贴来完成。
唯一的其他可能性是通过 Range.InsertXML 方法插入图像。这意味着图像需要采用 base64 格式,并使用 OPC 平面文件格式包装在有效的 WordOpenXML 中。
Word 打开XML 是将信息"stream" 导入Word 文档的唯一途径。
我想以编程方式将内存中的图像(位图)插入到 Word 文档中。
也就是我通过Microsoft.Office.Interop.Word在内存中创建了一个Word文档。然后我想将一系列位图图像依次附加到文档中并保存为.doc文件。
我一直在网上搜索,但我找到的唯一解决方案是
1) 将图像添加到剪贴板,然后使用 Microsoft.Office.Interop.Word.Selction.Paste().
将所选内容粘贴到打开的文档中2) 将图像写入文件并使用 Microsoft.Office.Interop.Word.InlineShapes.AddPicture().
插入虽然这两种方法都有效,但我发现它们非常笨拙,尤其是在应用程序处于 运行 时控制剪贴板的第一个选项。
还有其他方法吗?
您可以在 Selection 或特定的 Range 对象上使用 InsertFile。
注意: 这也需要将位图保存在硬盘上。我认为唯一在内存中添加图像可以使用剪贴板通过复制/粘贴来完成。
唯一的其他可能性是通过 Range.InsertXML 方法插入图像。这意味着图像需要采用 base64 格式,并使用 OPC 平面文件格式包装在有效的 WordOpenXML 中。
Word 打开XML 是将信息"stream" 导入Word 文档的唯一途径。