我已经创建了一个word文档docx,现在正在使用OpenXml生产力工具对其进行“逆向工程”。我正在使用.FeedData()
将样式,主题等提供给文档,我将其保存为反射中的.xml文件 - 一切顺利,直到我来到页脚。
这就是我正在为风格做的事情(这非常合适):</ p>
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);
}
其他一切看起来都不错,我可以看到我文档中的部分,但页脚没有出现在文档中,我在这里做错了什么?我是否需要告诉文档使用哪个页脚部分?
答案 0 :(得分: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