用于novacode DocX的自定义页眉和页脚

时间:2017-05-18 11:49:01

标签: c# asp.net-mvc docx novacode-docx

我正在尝试为所有页面创建一个包含页眉和页脚的docx文档。 对于标题,我希望图像能够满足所有标题。如下图所示: header that i want for doc 对于页脚我希望它在左侧和右侧我希望有页面的编号。如下图所示: footer i want for doc

我现在拥有的是:

        using (var docx = DocX.Create(filename))
        {
            docx.AddHeaders();
            docx.AddFooters();
            var headerDefault = docx.Headers.odd;
            var footerDefault = docx.Footers.odd;
            Novacode.Paragraph hp = headerDefault.InsertParagraph();
            Novacode.Paragraph fp = footerDefault.InsertParagraph();
            Novacode.Image logoHeader = docx.AddImage(System.Web.HttpContext.Current.Server.MapPath("/Images/jpg/header_pdf.jpg"));
            Novacode.Image logoFooter = docx.AddImage(System.Web.HttpContext.Current.Server.MapPath("/Images/jpg/footer_pdf.jpg"));
            hp.AppendPicture(logoHeader.CreatePicture());
            fp.AppendPicture(logoFooter.CreatePicture());

问题是页眉和页脚都获得了文档其余部分的边距,即使我做了

            docx.MarginTop = 0F;
            docx.MarginRight = 0F;
            docx.MarginBottom = 0F;
            docx.MarginLeft = 0F;

标题上仍有一个上边距,页脚上有一个下边距。

有没有人有解决方案?感谢

1 个答案:

答案 0 :(得分:0)

最新答案,但可能对某人有用-我遇到了同样的问题。问题在这里:

Novacode.Paragraph hp = headerDefault.InsertParagraph();
Novacode.Paragraph fp = footerDefault.InsertParagraph();

页眉和页脚已经有一段,您应该得到它:

Novacode.Paragraph hp = headerDefault.Paragraphs.First();

因此出现了边距,因为有两个段落,其中一个是空的,但是有新的行符号。