今天处理word文档模板时,需要将文档尾部多于的空白页面删除。
起初网上找了跟多资料,无法很精准的行为到最后页面内容是否为空并删除。。后来就用了这个不算很好地办法,写下来留记录,也希望知道如何操作的大神给指点下。
主需求:删除页面末尾空白的页面(换行符、段落符、分页符等视为空内容)
我的办法是使用Paragraphs对象从最后一段向前循环删除空行
Paragraphs ps = docx.Paragraphs;
int psCount = ps.Count;
//从最后一段向上到,将所有空行删除,并且到最后一个非空行结束
for (int i = psCount; i > 0; i--)
{
Paragraph p = ps[i];
//replaceTextSpaceTNR 是一个将空格\r\n\t\f等替换为空字符的方法
if (replaceTextSpaceTNR(p.Range.Text) != String.Empty)
{
break;
}
//删除改行
if (i > ps.Count) break; //怕数组越界,所以如果大于当前行就要退出操作
ps[i].Range.Delete(); //删除空段落
}