public void AddHeader(string docPath)
{
var document = WordprocessingDocument.Open(docPath, true);
var mainDocumentPart = document.MainDocumentPart;
mainDocumentPart.DeleteParts(mainDocumentPart.HeaderParts);
var newHeaderPart = mainDocumentPart.AddNewPart<HeaderPart>();
// try this instead
var imgPart = newHeaderPart.AddImagePart(ImagePartType.Jpeg, "rId999");
var imagePartID = newHeaderPart.GetIdOfPart(imgPart);
using(FileStream fsD =newFileStream("D:\\header.png", FileMode.Open)) { imgPart.FeedData(fsD); }
var rId = mainDocumentPart.GetIdOfPart(newHeaderPart);
var headerRef = new HeaderReference { Id = rId };
var sectionProps = mainDocumentPart.Document.Body.Elements<SectionProperties>().LastOrDefault();
if (sectionProps == null)
{
sectionProps = new SectionProperties();
mainDocumentPart.Document.Body.Append(sectionProps);
}
sectionProps.RemoveAllChildren<HeaderReference>();
sectionProps.Append(headerRef);
newHeaderPart.Header = GeneratePicHeader(imagePartID);
newHeaderPart.Header.Save();
}
private Header GeneratePicHeader(string relationshipId)
{
var element =
new Drawing(
new DW.Inline(
// Cx , Cy 控制图片大小,还得修改下面的
new DW.Extent() { Cx = 1990000L, Cy = 562000L },
new DW.EffectExtent()
{
LeftEdge = 0L,
TopEdge = 0L,
RightEdge = 0L,
BottomEdge = 0L
},
new DW.DocProperties()
{
Id = (UInt32Value)1U,
Name = "NIS Logo"
},
new DW.NonVisualGraphicFrameDrawingProperties(
new A.GraphicFrameLocks() { NoChangeAspect = true }),
new A.Graphic(
new A.GraphicData(
new PIC.Picture(
new PIC.NonVisualPictureProperties(
new PIC.NonVisualDrawingProperties()
{
Id = (UInt32Value)0U,
Name = "nis.png"
},
new PIC.NonVisualPictureDrawingProperties()),
new PIC.BlipFill(
new A.Blip(
new A.BlipExtensionList(
new A.BlipExtension()
{
Uri =
"{28A0092B-C50C-407E-A947-70E740481C1C}"
})
)
{
Embed = relationshipId,
CompressionState =
A.BlipCompressionValues.Print
},
new A.Stretch(
new A.FillRectangle())),
new PIC.ShapeProperties(
new A.Transform2D(
new A.Offset() { X = 0L, Y = 0L },
new A.Extents() { Cx = 1990000L, Cy = 562000L }),
new A.PresetGeometry(
new A.AdjustValueList()
)
{ Preset = A.ShapeTypeValues.Rectangle }))
)
{ Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" })
)
{
DistanceFromTop = (UInt32Value)0U,
DistanceFromBottom = (UInt32Value)0U,
DistanceFromLeft = (UInt32Value)0U,
DistanceFromRight = (UInt32Value)0U,
EditId = "50D07946"
});
var header = new Header();
var paragraph = new Paragraph();
var run = new Run();
run.Append(element);
paragraph.Append(run);
header.Append(paragraph);
return header;
}
作者:玥月鸟飞
链接:https://www.jianshu.com/p/42b11dc59165
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。