1

我创建了一个 word 文档 docx,现在正在使用 OpenXml 生产力工具对其进行“逆向工程”。我.FeedData()用来将样式、主题等输入到文档中,我从反射中将其保存为 .xml 文件 - 一切都很顺利,直到我来到页脚。

这是我为样式所做的(这非常好):

StyleDefinitionsPart styleDefinitionsPart = mainPart.AddNewPart<StyleDefinitionsPart>();
using (FileStream fs = new FileStream(Server.MapPath("styles.xml"), FileMode.Open, FileAccess.Read))
{
    styleDefinitionsPart.FeedData(fs);
}

查看我的文档,一切都在那里 - 现在我反思页脚部分,将 xml 保存到 footer.xml 并添加如下部分:

FooterPart footerPart = mainPart.AddNewPart<FooterPart>();
using (FileStream fs = new FileStream(Server.MapPath("footer.xml"), FileMode.Open, FileAccess.Read))
{
    footerPart.FeedData(fs);
}

其他一切看起来都很好,我可以在我的文档中看到该部分,但页脚只是没有出现在文档上,我在这里做错了什么?我是否需要告诉文档使用哪个页脚部分或其他内容?

4

1 回答 1

0

固定的。似乎正文中必须有一些内容才能添加页脚和页眉,然后您需要为每个部分添加对它们的引用,如下所示:

foreach (var section in mainPart.Document.Body.Elements<WP.SectionProperties>())
{
    section.PrependChild<WP.HeaderReference>(new WP.HeaderReference() { Id = mainPart.GetIdOfPart(headerPart) });
    section.PrependChild<WP.FooterReference>(new WP.FooterReference() { Id = mainPart.GetIdOfPart(footerPart) });
}

请记住最后添加页眉和页脚,以便文档中有内容。

非常感谢这个答案:Add Header and Footer to an existing empty word document with OpenXML SDK 2.0

于 2013-05-31T12:55:30.180 回答