• C# 插入或删除word分页符


    C# 插入或删除word分页符

    分页符是word中常用的一种分页的符号,它标志着上一页的结束和下一页的开始。在word中分页符有两种,一种是自动分页符,也叫软分页符,即一页数据写满以后转到下一页时word自动插入的一个分页符;另一种是手动分页符,也称为硬分页符,通常用于在指定位置强制分页。插入手动分页符可以方便打印,但很多时候手动分页符也会影响整个文档的排版问题,这时就需要移除分页符。其实有很多种方法可以实现在word中插入或删除手动分页符,就不一 一介绍了,这里主要分享一下如何使用C#来完成这一功能(如果需要VB.NET代码可以去谷歌搜索C# to VB.NET转换就可以了)。

    第一部分:插入分页符

    步骤1新建一个控制台项目并添加引用和命名空间

    1
    2
    using Spire.Doc;
    using Spire.Doc.Documents;

    步骤2新建一个word文档对象并加载需要插入分页符的文档

    1
    2
    Document document = new Document();
    document.LoadFromFile(@"C:UsersAdministratorDesktop法国旅游景点介绍.docx");

    步骤3在指定的位置添加分页符

    1
    document.Sections[0].Paragraphs[1].AppendBreak(BreakType.PageBreak);

    步骤4保存并重启文档

    1
    2
    document.SaveToFile("分页符.docx", FileFormat.Docx2010);
    System.Diagnostics.Process.Start("分页符.docx");

    原文档截图:

                         

    与效果图对比:

    这里我将输出的word文档视图改为双页视图方便对比。

    第二部分:删除分页符

    步骤1与第一部分步骤2一样,新建一个word文档对象并加载待删除分页符的文档

    1
    2
    Document document = new Document();
    document.LoadFromFile("分页符.docx");

    步骤2遍历文档中第一个section的所有段落,找到分页符并将其删除。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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);
                        }
                    }
                }

    步骤3保存并重启文档

    1
    2
    document.SaveToFile("移除分页符.docx", FileFormat.Docx2010);
    System.Diagnostics.Process.Start("移除分页符.docx");

    全部代码整合参考

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    using Spire.Doc;
    using Spire.Doc.Documents;
     
    namespace insert_and_remove_page_break_in_word
    {
        class Program
        {
            static void Main(string[] args)
            {
                Document document = new Document();
                document.LoadFromFile(@"C:UsersAdministratorDesktop文件A.docx");
     
                //在指定位置插入分页符
                document.Sections[0].Paragraphs[1].AppendBreak(BreakType.PageBreak);
     
                //移除分页符
                /*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("文件B.docx", FileFormat.Docx2010);
                System.Diagnostics.Process.Start("文件B.docx");
            }
        }
    }

    总结:

    在这个方案中我使用了E-iceblue公司的免费Word控件,它方便易用,而且运行不依赖office,同时还支持其它功能如新建、阅读、编辑及转换等。使用时需要注意的是免费版有一定的限制,但我觉得一般情况下个人使用已经足够了。供有需要的朋友参考。

  • 相关阅读:
    python 报错 AttributeError: 'Series' object has no attribute 'as_matrix'
    python 报错 NameError: name 'xrange' is not defined
    python报错 AxisError: axis 0 is out of bounds for array of dimension 0
    Python 列表中的浅拷贝与深拷贝
    python列表中查找元素
    Python中两个变量交换
    Python中*和**的使用
    Airtest启动报错:ERROR:gup_process_transport_factory.cc<1019>] Lost UI share context
    adb的使用
    Python函数
  • 原文地址:https://www.cnblogs.com/Alex80/p/5123393.html
Copyright © 2020-2023  润新知