contact_nameなどの特定の変数を使用するように設計された単一ページのdocxテンプレートファイルがあります。 OpenXml SDK + Open-Xml-PowerToolsを使用して処理する際、私はこのテンプレートに基づいてdocxファイルの多くのインスタンスを作成し、実際の値を変数に置き換えます。最後に、私は1つのdocx出力を必要とするので、Open-Xml-PowerTools DocumentBuilderを使って1つのdocxにマージします。docxファイルを1つにマージし、番号付きリストの書式設定を保持
これは、ユーザーが番号付きリストをテンプレートに挿入するまで機能していたようです。私の元の問題は番号が付けられていましたが、文書のポストマージ後の番号付けが続けられました。すなわち、リストの2番目のページの番号は、文書がすべて同じリストIDを参照していると思ったため1-10ではなく11-20でした。
これは、num idがドキュメント本文内で一意であることを保証することで解決できましたが、リストのフォーマットは最初のページを超えて失われています。最初のページでは、番号付きリスト項目はインデントされていますが、2番目以降では、ページ上に残っているのは、適切な番号付きリストではないためです。私はこれらの新しいnum idを一致させるために、スタイリングとナンバリングのセクションを更新する必要があるようですが、私はこの作業をすることはできません。
私はericwhite.comのフォーラムでこれについて投稿しましたが、最新の問題(http://ericwhite.com/blog/forums/topic/list-numbering-on-merged-docs/)について聞いたことがありません。
これを修正する私の最近の試みは、OpenXml-Power-Toolsの中で例外を投げているので、新しいリストIDでいくつかのセクションを更新していないと思います。誰もこれを行う方法を知っていますか?コードは以下の例外を除いて以下のように試みます。あなたは、各パスの間に2回同じAbstractNumId基準値を更新しているように見えます
System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at OpenXmlPowerTools.DocumentBuilder.CopyNumbering(WordprocessingDocument sourceDocument, WordprocessingDocument newDocument, IEnumerable1 newContent, List1 images)
at OpenXmlPowerTools.DocumentBuilder.AppendDocument(WordprocessingDocument sourceDocument, WordprocessingDocument newDocument, List1 newContent, Boolean keepSection, String insertId, List1 images)
at OpenXmlPowerTools.DocumentBuilder.BuildDocument(List`1 sources, WordprocessingDocument output)
at OpenXmlPowerTools.DocumentBuilder.BuildDocument(List`1 sources, String fileName)
at BereavementMailing.TemplateEngine.Merge(List`1 inputFiles, String outputFilePath) in C:\caw\Underdog\Apps\Services\BereavementMailingEngine\BM_RequestProcessor\TemplateEngine.cs:line 508