在word文档中加载在线图片
Loading an online image in a word document
我正在开发一个 wpf 应用程序,它可以简单地将图像插入到 word 文档中。每次打开word文档我都希望图片从服务器调用图片,例如(server.com/Images/image_to_be_insert.png)
我的代码如下:
Application application = new Application();
Document doc = application.Documents.Open(file);
var img = doc.Application.Selection.InlineShapes.AddPicture("server.com/Images/img.png");
img.Height = 20;
img.Width = 20;
document.Save();
document.Close();
基本上我的代码所做的是,下载图像然后将其添加到文档中。我想要做的是,我希望在打开 word 文档时从服务器加载图像。
无需使用 Office Interop 库,您可以使用新的 OpenXML SDK 实现此目的,它不需要安装 MS Office 即可工作。
要求
从 Visual Studio 安装 OpenXML NuGet:DocumentFormat.OpenXml
添加所需的命名空间:
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Vml;
using DocumentFormat.OpenXml.Wordprocessing;
代码
using (WordprocessingDocument package = WordprocessingDocument.Create(@"c:/temp/img.docx", WordprocessingDocumentType.Document))
{
package.AddMainDocumentPart();
var picture = new Picture();
var shape = new Shape() { Style="width: 272px; height: 92px" };
var imageData = new ImageData() { RelationshipId = "rId1" };
shape.Append(imageData);
picture.Append(shape);
package.MainDocumentPart.Document = new Document(
new Body(
new Paragraph(
new Run(picture))));
package.MainDocumentPart.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
new System.Uri("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png", System.UriKind.Absolute), "rId1");
package.MainDocumentPart.Document.Save();
}
这将创建一个新的 Word 文档,打开它时将从提供的 URL 加载 Google 徽标。
参考资料
https://msdn.microsoft.com/en-us/library/dd440953(v=office.12).aspx
How can I add an external image to a word document using OpenXml?
我正在开发一个 wpf 应用程序,它可以简单地将图像插入到 word 文档中。每次打开word文档我都希望图片从服务器调用图片,例如(server.com/Images/image_to_be_insert.png) 我的代码如下:
Application application = new Application();
Document doc = application.Documents.Open(file);
var img = doc.Application.Selection.InlineShapes.AddPicture("server.com/Images/img.png");
img.Height = 20;
img.Width = 20;
document.Save();
document.Close();
基本上我的代码所做的是,下载图像然后将其添加到文档中。我想要做的是,我希望在打开 word 文档时从服务器加载图像。
无需使用 Office Interop 库,您可以使用新的 OpenXML SDK 实现此目的,它不需要安装 MS Office 即可工作。
要求
从 Visual Studio 安装 OpenXML NuGet:DocumentFormat.OpenXml
添加所需的命名空间:
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Vml;
using DocumentFormat.OpenXml.Wordprocessing;
代码
using (WordprocessingDocument package = WordprocessingDocument.Create(@"c:/temp/img.docx", WordprocessingDocumentType.Document))
{
package.AddMainDocumentPart();
var picture = new Picture();
var shape = new Shape() { Style="width: 272px; height: 92px" };
var imageData = new ImageData() { RelationshipId = "rId1" };
shape.Append(imageData);
picture.Append(shape);
package.MainDocumentPart.Document = new Document(
new Body(
new Paragraph(
new Run(picture))));
package.MainDocumentPart.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
new System.Uri("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png", System.UriKind.Absolute), "rId1");
package.MainDocumentPart.Document.Save();
}
这将创建一个新的 Word 文档,打开它时将从提供的 URL 加载 Google 徽标。
参考资料
https://msdn.microsoft.com/en-us/library/dd440953(v=office.12).aspx
How can I add an external image to a word document using OpenXml?