C# 使用NPOI将图像添加到Word docx文件
我开始使用NPOI来创建Word文档,我尝试向文档中添加一个简单的图像,但它没有显示出来。不过我可以让文本显示得很好 这是我的代码:C# 使用NPOI将图像添加到Word docx文件,c#,.net,ms-word,npoi,C#,.net,Ms Word,Npoi,我开始使用NPOI来创建Word文档,我尝试向文档中添加一个简单的图像,但它没有显示出来。不过我可以让文本显示得很好 这是我的代码: var wDoc = new XWPFDocument(); var bytes = File.ReadAllBytes(Settings.Configuration.WebsiteRootPath + "images/logo-large.png"); wDoc.AddPictureData(bytes, (int)PictureType
var wDoc = new XWPFDocument();
var bytes = File.ReadAllBytes(Settings.Configuration.WebsiteRootPath + "images/logo-large.png");
wDoc.AddPictureData(bytes, (int)PictureType.JPEG);
我也试过:
var wDoc = new XWPFDocument();
using (Stream s = File.OpenRead(Settings.Configuration.WebsiteRootPath + "images/logo-large.png"))
{
wDoc.CreateParagraph().CreateRun().AddPicture(s, (int)PictureType.JPEG, "logo-large.png", 200, 200);
}
没有运气-两种情况下都是空白文档
我做错了什么?确保您拥有最新的dll版本2.1.1(2014年6月发布),因为在Word docx中插入图片存在已知问题/支持有限。版本2.1.1正式支持将图片插入Word docx。请参见发行说明中的新功能
确保您拥有最新的dll版本2.1.1(2014年6月发布),因为在Word docx中插入图片存在已知问题/支持有限。版本2.1.1正式支持将图片插入Word docx。请参见发行说明中的新功能
最后,我有了一个.netCore的解决方案。 问题出在生成的document.xml中。以下代码:
var p0 = doc.Paragraphs[0];
var r0 = p0.CreateRun();
r0.AddPicture(image, 6,"logo.png",Units.ToEMU(width),Units.ToEMU(height));
生成xml节点:
<wp:docPr name="Drawing 0" descr="logo.png"/>
这仅对文件中的第一个图像是必需的。如果您有更多图像,以下代码也可以:
var p0 = doc.Paragraphs[0];
var r0 = p0.CreateRun();
r0.AddPicture(image, 6, "logo.png", Units.ToEMU(width), Units.ToEMU(height));
var docPr = ((NPOI.OpenXmlFormats.Dml.WordProcessing.CT_Drawing)r0.GetCTR().Items[0]) .inline[0].docPr;
docPr.id = 1000;
var p1 = doc.Paragraphs[1];
var r1 = p1.CreateRun();
r1.AddPicture(image2, 6, "cat.png", Units.ToEMU(width2), Units.ToEMU(height2));
最后,我有了一个.netCore的解决方案。 问题出在生成的document.xml中。以下代码:
var p0 = doc.Paragraphs[0];
var r0 = p0.CreateRun();
r0.AddPicture(image, 6,"logo.png",Units.ToEMU(width),Units.ToEMU(height));
生成xml节点:
<wp:docPr name="Drawing 0" descr="logo.png"/>
这仅对文件中的第一个图像是必需的。如果您有更多图像,以下代码也可以:
var p0 = doc.Paragraphs[0];
var r0 = p0.CreateRun();
r0.AddPicture(image, 6, "logo.png", Units.ToEMU(width), Units.ToEMU(height));
var docPr = ((NPOI.OpenXmlFormats.Dml.WordProcessing.CT_Drawing)r0.GetCTR().Items[0]) .inline[0].docPr;
docPr.id = 1000;
var p1 = doc.Paragraphs[1];
var r1 = p1.CreateRun();
r1.AddPicture(image2, 6, "cat.png", Units.ToEMU(width2), Units.ToEMU(height2));
你用过这个吗?我对.NET Core和NPOI.Yes的DotNetCore版本有相同的问题。通过更新dll的。我的.net core 2项目中有DotNetCore.NPOI,我也遇到了同样的问题。这就是我问你的原因。你有没有让它起作用?我对.NET Core和NPOI.Yes的DotNetCore版本有相同的问题。通过更新dll的。我的.net core 2项目中有DotNetCore.NPOI,我也遇到了同样的问题。这就是我问的原因。