最后我找到了 .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"/>
缺少属性 ID。当您将此节点更改为:
<wp:docPr name="Drawing 0" id="0" descr="logo.png"/>
一切都应该有效。即使您的文档中已有图像并且仅用于第一个记录,也会发生这种情况。我找不到修复它的原因和方法(可能是导出部分中的某些内容),但是如果您将此 id 更改为其他值,它将起作用:
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 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));