C# 插入或删除word分页符
2016-01-11 16:28
357 查看
C# 插入或删除word分页符
分页符是word中常用的一种分页的符号,它标志着上一页的结束和下一页的开始。在word中分页符有两种,一种是自动分页符,也叫软分页符,即一页数据写满以后转到下一页时word自动插入的一个分页符;另一种是手动分页符,也称为硬分页符,通常用于在指定位置强制分页。插入手动分页符可以方便打印,但很多时候手动分页符也会影响整个文档的排版问题,这时就需要移除分页符。其实有很多种方法可以实现在word中插入或删除手动分页符,就不一 一介绍了,这里主要分享一下如何使用C#来完成这一功能(如果需要VB.NET代码可以去谷歌搜索C# to VB.NET转换就可以了)。
第一部分:插入分页符
步骤1:新建一个控制台项目并添加引用和命名空间
步骤2:新建一个word文档对象并加载需要插入分页符的文档
步骤3:在指定的位置添加分页符
步骤4:保存并重启文档
原文档截图:
与效果图对比:
这里我将输出的word文档视图改为双页视图方便对比。
第二部分:删除分页符
步骤1:与第一部分步骤2一样,新建一个word文档对象并加载待删除分页符的文档
步骤2:遍历文档中第一个section的所有段落,找到分页符并将其删除。
步骤3:保存并重启文档
全部代码整合参考:
总结:
在这个方案中我使用了E-iceblue公司的免费Word控件,它方便易用,而且运行不依赖office,同时还支持其它功能如新建、阅读、编辑及转换等。使用时需要注意的是免费版有一定的限制,但我觉得一般情况下个人使用已经足够了。供有需要的朋友参考。
分页符是word中常用的一种分页的符号,它标志着上一页的结束和下一页的开始。在word中分页符有两种,一种是自动分页符,也叫软分页符,即一页数据写满以后转到下一页时word自动插入的一个分页符;另一种是手动分页符,也称为硬分页符,通常用于在指定位置强制分页。插入手动分页符可以方便打印,但很多时候手动分页符也会影响整个文档的排版问题,这时就需要移除分页符。其实有很多种方法可以实现在word中插入或删除手动分页符,就不一 一介绍了,这里主要分享一下如何使用C#来完成这一功能(如果需要VB.NET代码可以去谷歌搜索C# to VB.NET转换就可以了)。
第一部分:插入分页符
步骤1:新建一个控制台项目并添加引用和命名空间
using Spire.Doc; using Spire.Doc.Documents;
步骤2:新建一个word文档对象并加载需要插入分页符的文档
Document document = new Document(); document.LoadFromFile(@"C:\Users\Administrator\Desktop\法国旅游景点介绍.docx");
步骤3:在指定的位置添加分页符
document.Sections[0].Paragraphs[1].AppendBreak(BreakType.PageBreak);
步骤4:保存并重启文档
document.SaveToFile("分页符.docx", FileFormat.Docx2010); System.Diagnostics.Process.Start("分页符.docx");
原文档截图:
与效果图对比:
这里我将输出的word文档视图改为双页视图方便对比。
第二部分:删除分页符
步骤1:与第一部分步骤2一样,新建一个word文档对象并加载待删除分页符的文档
Document document = new Document(); document.LoadFromFile("分页符.docx");
步骤2:遍历文档中第一个section的所有段落,找到分页符并将其删除。
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:保存并重启文档
document.SaveToFile("移除分页符.docx", FileFormat.Docx2010); System.Diagnostics.Process.Start("移除分页符.docx");
全部代码整合参考:
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,同时还支持其它功能如新建、阅读、编辑及转换等。使用时需要注意的是免费版有一定的限制,但我觉得一般情况下个人使用已经足够了。供有需要的朋友参考。
相关文章推荐
- [C#基础知识] ReadOnly关键字修饰的变量可以修改,只是不能重新分配
- 备忘录模式 c#
- c# 输出英文版时间
- 关于C#正则表达式MatchCollection类的总结,正则表达式的应用
- C# TextBox换行 自动显示至最后行
- 一套通过c# sap-rfc 完整处理一个bdc凭证的程序代码
- C#调用迅雷下载,调用迅雷影音播放
- C# 特性详解
- c# - Xml序列化, 类名冲突问题
- 中介者模式 C#
- .net 工程log4net的使用
- c#借助CommandLineParser写命令行工具
- c#大圣之路——c#获取DataGrid中选中行某一列的数据,传到其他页面,实现页面间数据传递
- 状态者模式 c#
- 责任链模式 c#
- C#设计模式01-工厂方法模式(附源码)
- C#学习论坛——认识志同道合的朋友
- C#中HashTable的用法
- C#中int,string,char[],char的转换(待续)
- C# 事务高效率插入数据