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:\Users\Administrator\Desktop\法国旅游景点介绍.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:\Users\Administrator\Desktop\文件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,同时还支持其它功能如新建、阅读、编辑及转换等。使用时需要注意的是免费版有一定的限制,但我觉得一般情况下个人使用已经足够了。供有需要的朋友参考。
分类:
.NET WORD
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)