C#给Word页眉添加图片

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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  

posted @ 2021-06-25 15:28  unicornsir  阅读(265)  评论(0编辑  收藏  举报