オープンXMLを使用してWord文書ファイルを正常に生成しましたが、空白のページが多すぎます。どうすればそれらを削除できますか?
1 に答える
これは、これらの空白ページが Open XML でどのように表現されるかによって異なります。空白ページがどのように表現されるかを正確に示すために、サンプル ドキュメントを投稿することをお勧めします。
しかし、ユーザーが余分な改ページを (Word で ctrl-enter を押して) 挿入した結果、空白のページが作成された Word 文書の場合を考えてみましょう。これらの改ページは、XML では次のように表されます。
<w:br w:type="page"/>
ページには、スペースやフォントなどのタグがたくさんあります。ページにはヘッダーとフッターも表示される場合があります。しかし、空白のページを新しい段落テキストのないページと定義しましょう。Open XML では、新しいテキストは aw:t タグで表示されます。
そのため、間にテキストがない余分な改ページによって作成された空白のページを削除するには、XML ドキュメントで次の正規表現を実行し、空白 ("") に置き換えます。
<w:br w:type="page"/>(.(?!<w:t>))*(?=<w:br w:type="page"/>)
この正規表現は、間に新しいテキストがない一連の 2 つ以上の改ページを検索し、最後の改ページ以外をすべて削除します。
(これはドキュメントの最後にある空白ページを処理しないことに注意してください。これは少しトリッキーです。さらに、画像、テキストボックスなどを含むページを考慮したい場合は、正規表現を次のようにする必要があります。関連項目を含むように拡張されました)。