【问题标题】:Custom Headers and footers for novacode DocXnovacode DocX 的自定义页眉和页脚
【发布时间】:2017-10-18 05:15:41
【问题描述】:

我正在尝试创建一个包含所有页面的页眉和页脚的 docx 文档。 对于标题,我希望图像占据所有标题。如下图所示: 对于页脚,我希望它位于左侧,而在右侧我想要页码。如下图所示:

我现在拥有的是:

        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;

页眉仍然有一个上边距,页脚有一个下边距。

有人有解决办法吗?谢谢

【问题讨论】:

  • 有没有办法用novacode去掉页眉和页脚的边距?

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


【解决方案1】:

迟到的答案,但也许对某人有用 - 我遇到了同样的问题。问题出在这里:

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

页眉和页脚已经有了段落,你应该得到它:

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

所以出现边距是因为有两个段落,其中一个是空的,但有换行符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2011-12-27
    • 2013-12-03
    相关资源
    最近更新 更多