C# 如何处理Word文档分页——插入、删除、阻止分页

本篇文章将介绍C#编程如何来处理Word分页的方法。操作Word中的分页这里分为几种情况的来介绍:

  1. 插入分页
    1.1在指定段落末尾插入分页
    1.2 在指定字符后插入分页
  2. 删除分页
    3.阻止表格分页

处理工具Spire.Doc for .NET 6.1
安装该类库后,在程序中引用Spire.Doc.dll文件即可(如下图),dll文件在安装路径下Bin文件夹中获取。

【示例1】插入分页(在指定段落末尾插入分页)

【C#】

using Spire.Doc;
using Spire.Doc.Documents;

namespace InsertPageBreak_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建实例,加载文件
            Document document = new Document();
            document.LoadFromFile("test.docx");

            //在指定段落末尾,插入分页
            document.Sections[0].Paragraphs[1].AppendBreak(BreakType.PageBreak);

            //保存文件并打开
            document.SaveToFile("PageBreak.docx", FileFormat.Docx2010);
            System.Diagnostics.Process.Start("PageBreak.docx");

        }
    }
}

调试运行程序,生成文档。
分页前后效果对比添:
分页前

分页后

【示例2】插入分页(在指定字符后插入分页)

C#

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace InsertPagebreak1_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建实例,加载文件
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //查找需要在其后插入分页的字符
            TextSelection[] selections = doc.FindAllString("guests", true, true);
            //遍历文档,插入分页
            foreach (TextSelection ts in selections)
            {
                TextRange range = ts.GetAsOneRange();
                Paragraph paragraph = range.OwnerParagraph;
                int index = paragraph.ChildObjects.IndexOf(range);
                Break pageBreak = new Break(doc, BreakType.PageBreak);
                paragraph.ChildObjects.Insert(index + 1, pageBreak);
            }

            //保存并打开文档
            doc.SaveToFile("Break.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("Break.docx");

        }
    }
}

测试结果:

【示例3】删除分页

C#

using Spire.Doc;
using Spire.Doc.Documents;

namespace RemovePagebreak_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            {
                //实例化Document类,加载文件
                Document document = new Document();
                document.LoadFromFile("sample.docx", FileFormat.Docx);

                //遍历第一节中的所有段落,移除分页
                for (int j = 0; j < document.Sections[0].Paragraphs.Count; j++)
                {
                    Paragraph p = document.Sections[0].Paragraphs[j];
                    for (int i = 0; i < p.ChildObjects.Count; i++)
                    {
                        DocumentObject obj = p.ChildObjects[i];
                        if (obj.DocumentObjectType == DocumentObjectType.Break)
                        {
                            Break b = obj as Break;
                            p.ChildObjects.Remove(b);
                        }
                    }
                }
                //保存并打开文件
                document.SaveToFile("result.docx", FileFormat.Docx);
                System.Diagnostics.Process.Start("result.docx");
            }
        }
    }
}

测试效果对比:
原文档:

删除分页后:

【示例4】阻止Word表格分页

测试文件如下:

方法一:将跨页的表格重新定位放置在同一个页面上
C#

using Spire.Doc;
using Spire.Doc.Documents;

namespace PreventPagebreak_Table__Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Document类实例,加载文档
            Document doc = new Document("test.docx");

            //获取表格
            Table table = doc.Sections[0].Tables[0] as Table;

            //设置表格的段落位置,保持表格在同一页
            foreach (TableRow row in table.Rows)
            {
                foreach (TableCell cell in row.Cells)
                {
                    foreach (Paragraph p in cell.Paragraphs)
                    {
                        p.Format.KeepFollow = true;
                    }
                }
            }

            //保存文件并打开
            doc.SaveToFile("result.docx", FileFormat.Docx2010);
            System.Diagnostics.Process.Start("result.docx");
        }
    }
}

测试效果:

方法二:阻止同一行数据被强制分页
C#

using Spire.Doc;
using Spire.Doc.Documents;

namespace PreventPagebreak_Table__Doc
{
    class Program
    {
        static void Main(string[] args)
        {
          //创建实例,加载文件
            Document doc = new Document("test.docx");

            //获取指定表格
            Table table = doc.Sections[0].Tables[0] as Table;

            //设置表格分页属性
            table.TableFormat.IsBreakAcrossPages = false;

            //保存并打开文件
            doc.SaveToFile("output.docx", FileFormat.Docx2010);
            System.Diagnostics.Process.Start("output.docx");
        }
    }
}

测试效果:

以上全部是本次关于如何操作Word中的分页符的方法。如需转载,请注明出处。

原文地址:http://blog.51cto.com/eiceblue/2133721

时间: 2024-11-08 06:33:58

C# 如何处理Word文档分页——插入、删除、阻止分页的相关文章

(转) 如何在Excel和Word文档中插入GIF动画

Office Excel 和Word文档中插入图片很容易做到,但是要插入GIF动画,并且还要能让这个动画动起来,就不能依照普通的“插入 → 图片 → 来自文件”的方法了,否则的话即便是把GIF插入进去,也只是个静态的画面,并不能够动起来.要想实现动画的目的,就得借助VB中的一个特殊的插件 —— AniGIF.ocx(在PPT中无需这个插件).本文就以Excel 2003为例,对如何安装及使用这个插件做一介绍(在Word中的情况类同,可参考). 1. 下载.破解及安装AniGIF.ocx 首先到C

Word文档怎么插入到CAD中

对于CAD行业的小伙伴们来说,CAD编辑器是我们在CAD绘图中不可缺少的一个办公软件,但是很多小伙伴们都知道它可以拿来绘制CAD图纸,却很少人知道Word文档也可以插入到CAD中来.但是Word文档怎么插入到CAD中,小伙伴们都知道吗?下面小编就来教教大家操作方法. 第一步:首先,将电脑打开,在电脑中任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD编辑器(专业版),之后点击进入官网,根据系统提示操作步骤下载最新版本的CAD编辑器到电脑桌面上. 第二步:之后,将电脑桌面上的编辑器进行打开进入

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条 一丶jQ操作标签内文本 html() 标签元素中的内容 /** 替换的内容可以使一个js对象,jq对象,文本 **/ /* 获取值:获取选中标签元素的所有内容 ,包括标签*/ $('ul').html() " <li>1</li> <li&g

python读取word文档,插入mysql数据库实例

表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng# -*- coding:utf-8 -*-# 读取docx中的文本代码示例import docximport pymysqlimport reimport os # 创建数据库链接conn = pymysql.connect( host='rm-bp1vu5d84dg12c6d59o.mysql.rds.aliyuncs.c

在word文档中如何插入Mathtype公式

将mathtype公式插入到word文档中,是mathtype公式编辑器最基本的操作.当在Mathtype数学公式编辑器中编辑好公式之后,点击文件->更新XXX文档(XXX为当前编辑的word文档名称).本教程将详解word插入mathtype公式的具体操作步骤. 点击文件->更新XXX文档,即可在word文档中插入公式. 温馨提示:执行“更新到XXX文档”操作后,插入到word文档中的公式带有斜线背景.其实,如果你不想再插入公式,就可以点击文件->退出按钮,这样,那些斜线条会自动消失.

支持Word文档和其他文件格式间的转换的控件Spire.Doc for .NET

Spire.Doc for .NET是e-iceblue公司推出的一款专门对Microsoft Word 文档进行操作的.NET类控件.这款控件的主要功能在于帮助开发人员轻松快捷地生成.编辑和查看Word文档.同时,开发人员还可以通过使用Spire.Doc for .NET 设置Word文档的格式,插入图片,表格,超链接等.Spire.Doc for .NET 最大的便利之处在于它不依赖于Microsoft Word以及任何其他第三方软件.只需将此款控件安装在您的电脑上,您就可以对word文档进

java 处理word文档 (含图片,表格内容)

由于本人长期从事Oa相关项目的开发,所以处理word文档,Pdf,Excel等是在所难免的. 1.需求      处理Excel 可以用jxl        或者poi 2需求     用户在系统上填写信息,保存后导出标准的word文档,用户在系统上填写的信息我们用富文本编辑工具kindEditor,这个插件可以将用户从word文档拷贝的表格标签保存,但是图片信息需要另行上传. 现在问题出来了,我们要将这些包含图片,表格,特殊符号的东东生成word文档. 如果是单纯的没有特殊格字符,图片等信息,

Java Web项目中使用Freemarker生成Word文档

Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的内容放上${}占位符,就可以使用像Freemarker这样的模板引擎将出现占位符的地方替换成真实数据,这种方式较之其他的方案要更为简单. 下面举一个简单的例子,比如在Web页面中填写个人简历,然后点击保存下载到本地,效果图如下所示. 打开下

C#/VB.NET 给Word文档添加/撤销书签

在现代办公环境中,阅读或者编辑较长篇幅的Word文档时,想要在文档中某一处或者几处留下标记,方便日后查找.修改时,需要在相对应的文档位置插入书签.那对于开发者而言,在C#或者VB.NET语言环境中,如何来快速.简便的插入书签呢,我分享一下我的经验.这里我用到了一款E-iceblue公司发布的一款免费的Word组件(Free Spire.Doc for .NET),方法很简单,如下: 步骤一:初始化Document实例并加载Word文档 Document document = new Docume