部分的にマージしようとする文書が2つあります。OpenXML - 文書をマージするときに箇条書きの点が番号付きリストに変換される
私はRTFコンテンツコントロールの内部にあるとのAppendChildとcloneNodeを(真)(深いクローニング)を使用して、ドキュメントB内の別のsdtContent
へのコンテンツコントロールのsdtContent
のすべての子要素をコピー文書Aからいくつかの部品を取る:
foreach (var srcChildElement in sourceDocumentSdtContentBlockNode.ChildElements)
{
targetSdtContentBlock.AppendChild(srcChildElement.CloneNode(true);
}
ソースドキュメントAのコンテンツ(リストアイテム)が箇条書きでフォーマットされている場合、ドキュメントBの結果にはリスト項目の番号が付けられます。
なぜ私はそれをクローンしたときにソースに似ていますか?私はそれを操作しないので、それはちょうどそのスタイルを保つだろうと思った。ドキュメントBでは、書式設定の問題もないようです。箇条書きや番号付きリストを問題なく挿入することができます。
私は2つの完全に新しい単語文書を作成し、同じことが起こったので、それは確かに既存のファイルでは問題ではありません。
更新:私はコピーノードの一部ではない文書(https://msdn.microsoft.com/en-us/library/office/ee922775(v=office.14).aspx)における別の番号の定義があることが判明 。ノードをクローンすると、この情報は別の番号付け定義に含まれていません。ノードを新しい文書にコピーし、番号付けの定義から番号付けスタイルを保持するように指示する方法はありますか?もう1つの選択肢は、複製されたノードにnumPr
要素が含まれているかどうかを手動でチェックし、可能であれば定義を抽出する(IDの変更と再割り当てを含む) - 要素をコピーし、 )
アイデア?
ところで:(DocumentBuilderクラスで)ドキュメントをマージするには、OpenXML PowerToolsを使用することを強くお勧めします。 PowerToolsを使用すると、ホイールを再度作成する必要はありません... – Patric