从WORD open XML中删除空白页

时间:2012-09-04 14:49:57

标签: c#

我已经使用开放XML成功生成了word文档文件,但是我的页面太多了, 我怎么能删除它们?

1 个答案:

答案 0 :(得分:0)

这取决于这些空白页面在Open XML中的表示方式;您可能希望发布示例文档以准确演示空白页面的表示方式。

但是让我们来看一个Word文档的情况,其中用户插入了额外的分页符(通过在Word中按ct​​rl-enter),导致空白页面。这些分页符将在XML中表示为:

<w:br w:type="page"/>  

页面中仍会有大量标签用于间距,字体等;页面也可以显示页眉和页脚。但是,让我们将空白页定义为没有新段落文本的空白页。在Open XML中,新文本显示为w:t标记。

因此,为了删除由额外分页符创建的空白页面,中间没有文本,我们可以在XML文档上运行以下正则表达式,替换为空白(“”):

<w:br w:type="page"/>(.(?!<w:t>))*(?=<w:br w:type="page"/>)

这个正则表达式将搜索一系列两个或多个分页符,中间没有新文本,删除除最后一个之外的所有分页。

(请注意,这不会处理文档末尾的空白页面,这有点棘手。此外,如果您想要考虑包含图像,文本框等的页面,正则表达式将会必须扩大到包括相关项目。)