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 に答える