OpenXMLを使用してベンダー生成ドキュメントのヘッダーとフッターにあるフィールドを反復して、フィールドに格納された結果値に置き換えてフィールドを削除しようとしています。以下は、いくつかのフィールドのうちの1つのためのフッタからのコードです(このフィールドの後に4つまたは5つ以上が想像されます)。私はSSISスクリプトタスクの一部としてこれを実行するため、.Net 3.5フレームワークとOpenXML SDK 2.0に限定されています。OpenXMLフィールド値を結果値で置き換える
<w:r>
<w:rPr>
<w:rFonts w:ascii="Segoe UI" w:hAnsi="Segoe UI" w:eastAsia="Segoe UI"/>
<w:sz w:val="20"/>
</w:rPr>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Segoe UI" w:hAnsi="Segoe UI" w:eastAsia="Segoe UI"/>
<w:sz w:val="20"/>
</w:rPr>
<w:instrText xml:space="preserve"> REF NG_MACRO "STANDARD" "patient_lname" </w:instrText>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Segoe UI" w:hAnsi="Segoe UI" w:eastAsia="Segoe UI"/>
<w:sz w:val="20"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Segoe UI" w:hAnsi="Segoe UI" w:eastAsia="Segoe UI"/>
<w:sz w:val="20"/>
</w:rPr>
<w:t xml:space="preserve">Test</w:t>
</w:r>
私は研究の過去3週間を通じて発見した複数のアプローチを試みたが、すべては残りを失敗したり、最初のフィールドだけに影響を与えますが、ではないように見えます。
以下は、私がやったことが一番うまくいくように思った例ですが、最初のフィールドを見つけて残りを無視しています。注:これらのベンダーフィールドの後ろには、変更したくないページ番号フィールドがあります。
、変換プロセスは、私が解決策として、それを受け入れるだろう実行したとき、彼らは更新できないので、プログラムヘッダーとフッター内のフィールドをロックする方法があるかどう。文書を開くときにWordで完璧に見えるが、PDF形式で印刷または保存したり、Aspose.Wordsなどの第三者の変換ツールを使用しようとするとすぐにフィールドエラーメッセージがスローされる - 私はすでに最新かつ最高のAspose.Wordsは文字通り3行のコードでこの問題を修正する予定だが、誰もコストを承認することはない。 –