FeedData到FooterPart

时间:2013-05-31 12:27:48

标签: c# openxml wordprocessingml

我已经创建了一个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);
}

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

1 个答案:

答案 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