序言
本文是对Word页眉页脚的操作方法的进一步的阐述。在“C# 添加Word页眉页脚、页码”一文中,介绍了添加简单页眉页脚的方法,该文中的方法可满足于大多数的页眉页脚添加要求,但是对于比较复杂一点的文档,对页眉页脚的添加要求比较严格的,如需要设置奇、偶页的页眉页脚不同、首页页眉页脚不同、设置页码时需要对不同章节的内容设置不同页码、对包含重要信息的页眉页脚需要设置编辑权限、相同性质的文档需要复制指定页眉页脚等等操作,则可以参考本文中的方法。鉴于此,本文就以上操作要求分以下几个示例要点来进行:
- 设置Word奇偶页页眉页脚不同
- 设置Word首页页眉页脚不同
- 不连续设置页面(即对不同章节的内容设置不同页码)
- 复制页眉页脚
- 锁定页眉页脚
- 删除页眉页脚
使用工具:Free Spire.Doc for .NET(社区版)
注:编程时注意在相应程序中添加引用Spire.Doc.dll,dll文件可在安装路径下的Bin文件夹中获取。
C#示例,供参考
【示例1】设置Word奇偶页页眉页脚不同
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Drawing; namespace HeadersFootersForOddAndEvenPages { class Program { static void Main(string[] args) { //创建Document类,并加载测试文档 Document document = new Document(); document.LoadFromFile("test.docx"); //获取指定节,并设置页眉页脚奇偶页不同的属性为true Section section = document.Sections[0]; section.PageSetup.DifferentOddAndEvenPagesHeaderFooter = true; //设置奇偶数页的页脚 Paragraph P1 = section.HeadersFooters.EvenFooter.AddParagraph(); TextRange EF = P1.AppendText("偶数页页脚"); EF.CharacterFormat.FontName = "Calibri"; EF.CharacterFormat.FontSize = 12; EF.CharacterFormat.TextColor = Color.Green; EF.CharacterFormat.Bold = true; P1.Format.HorizontalAlignment = HorizontalAlignment.Right; Paragraph P2 = section.HeadersFooters.OddFooter.AddParagraph(); TextRange OF = P2.AppendText("奇数页页脚"); P2.Format.HorizontalAlignment = HorizontalAlignment.Left ; OF.CharacterFormat.FontName = "Calibri"; OF.CharacterFormat.FontSize = 12; OF.CharacterFormat.Bold = true; OF.CharacterFormat.TextColor = Color.Blue; //设置奇偶数页的页眉 Paragraph P3 = section.HeadersFooters.OddHeader.AddParagraph(); TextRange OH = P3.AppendText("奇数页页眉"); P3.Format.HorizontalAlignment = HorizontalAlignment.Left; OH.CharacterFormat.FontName = "Calibri"; OH.CharacterFormat.FontSize = 12; OH.CharacterFormat.Bold = true; OH.CharacterFormat.TextColor = Color.Blue; Paragraph P4 = section.HeadersFooters.EvenHeader.AddParagraph(); TextRange EH = P4.AppendText("偶数页页眉"); P4.Format.HorizontalAlignment = HorizontalAlignment.Right; EH.CharacterFormat.FontName = "Calibri"; EH.CharacterFormat.FontSize = 12; EH.CharacterFormat.Bold = true; EH.CharacterFormat.TextColor = Color.Green; //保存文档 document.SaveToFile("result.docx", FileFormat.Docx2010); System.Diagnostics.Process.Start("result.docx"); } } }
奇偶页页眉页脚不同设置效果:
【示例2】设置Word首页页眉页脚不同
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Drawing; namespace HeaderFootersDifferentFromFirstPage { class Program { static void Main(string[] args) { //创建Document类的对象,并加载测试文档 Document document = new Document(); document.LoadFromFile("test.docx"); //获取指定节,并设置页眉页脚首页不同属性为true Section section = document.Sections[0]; section.PageSetup.DifferentFirstPageHeaderFooter = true; //加载图片添加到首页页眉 Paragraph paragraph1 = section.HeadersFooters.FirstPageHeader.AddParagraph(); paragraph1.Format.HorizontalAlignment = HorizontalAlignment.Left; DocPicture headerimage = paragraph1.AppendPicture(Image.FromFile("2.png")); //添加文字到首页页脚 Paragraph paragraph2 = section.HeadersFooters.FirstPageFooter.AddParagraph(); paragraph2.Format.HorizontalAlignment = HorizontalAlignment.Center; TextRange FF = paragraph2.AppendText("首页页眉"); FF.CharacterFormat.FontSize = 12; //添加页眉页脚到其他页面 Paragraph paragraph3 = section.HeadersFooters.Header.AddParagraph(); paragraph3.Format.HorizontalAlignment = HorizontalAlignment.Center; TextRange NH = paragraph3.AppendText("非首页页眉"); NH.CharacterFormat.FontSize = 12; Paragraph paragraph4 = section.HeadersFooters.Footer.AddParagraph(); paragraph4.Format.HorizontalAlignment = HorizontalAlignment.Center; TextRange NF = paragraph4.AppendText("非首页页脚"); NF.CharacterFormat.FontSize = 12; //保存文档 document.SaveToFile("result.docx", FileFormat.Docx2010); System.Diagnostics.Process.Start("result.docx"); } } }
首页页眉页脚不同设置效果:
【示例3】不连续设置页码
using Spire.Doc; using Spire.Doc.Documents; using System.Drawing; namespace DifferentPageNumber_Doc { class Program { static void Main(string[] args) { //创建Document对象,并加载测试文档 Document doc = new Document(); doc.LoadFromFile("test.docx"); //实例化HeaderFooter对象(指定页码添加位置:页眉或页脚) HeaderFooter footer = doc.Sections[0].HeadersFooters.Footer; //添加段落到页脚 Paragraph footerParagraph = footer.AddParagraph(); //添加页码域到页脚 footerParagraph.AppendField("page number", FieldType.FieldPage); //设置页码右对齐 footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Right; //创建段落样式,包括字体名称、大小、颜色 ParagraphStyle style = new ParagraphStyle(doc); style.CharacterFormat.Font = new Font("黑体", 10, FontStyle.Bold); style.CharacterFormat.TextColor = Color.Black; doc.Styles.Add(style); //应用段落样式到页脚 footerParagraph.ApplyStyle(style.Name); //将第一节的页码样式设置为罗马数字 doc.Sections[0].PageSetup.PageNumberStyle = PageNumberStyle.RomanLower; //将第二节的页码样式设置为阿拉伯数字,并重新开始编码 doc.Sections[1].PageSetup.PageNumberStyle = PageNumberStyle.Arabic; doc.Sections[1].PageSetup.RestartPageNumbering = true; doc.Sections[1].PageSetup.PageStartingNumber = 1;//此处可任意指定起始页码数 //保存文档 doc.SaveToFile("output.docx", FileFormat.Docx2010); System.Diagnostics.Process.Start("output.docx"); } } }
页码添加效果:
【示例4】复制页眉页脚
using Spire.Doc; namespace CopyHeaderAndFooter_Doc { class Program { static void Main(string[] args) { //新建Word文档1,并加载带页眉的源文档 Document doc1 = new Document(); doc1.LoadFromFile("test1.docx"); //获取文档1的页眉 HeaderFooter Header = doc1.Sections[0].HeadersFooters.Header; //新建文档2,并加载目标文档 Document doc2 = new Document("test2.docx"); //遍历文档2中的所有Section foreach (Section section in doc2.Sections) { foreach (DocumentObject obj in Header.ChildObjects) { //将复制的页眉对象添加到section section.HeadersFooters.Header.ChildObjects.Add(obj.Clone()); } } //保存并打开文档 doc2.SaveToFile("copyHeader.docx", FileFormat.Docx2013); System.Diagnostics.Process.Start("copyHeader.docx"); } } }
测试文档:
测试结果:
【示例5】锁定页眉页脚
using Spire.Doc; namespace ProtectHeaderFooter_Doc { class Program { static void Main(string[] args) { //加载测试文档 Document doc = new Document(); doc.LoadFromFile("sample.docx"); //获取第一个section Section section = doc.Sections[0]; //保护文档并设置 ProtectionType 为 AllowOnlyFormFields,并设置启用编辑的密码 doc.Protect(ProtectionType.AllowOnlyFormFields, "123"); //设置ProtectForm 为false 允许编辑其他区域 section.ProtectForm = false; //保存文档 doc.SaveToFile("result.docx", FileFormat.Docx2013); System.Diagnostics.Process.Start("result.docx"); } } }
运行程序生成的文档中,页眉将不允许被编辑,正确输入密码后,方可编辑页眉。
【示例6】删除页眉页脚
1.删除所有页面的页眉页脚
using Spire.Doc; namespace RemoveHeaderFooter_Doc { class Program { static void Main(string[] args) { //创建一个Document实例并加载示例文档 Document doc = new Document(); doc.LoadFromFile("sample.docx"); //获取第一个section Section section = doc.Sections[0]; //删除页眉 section.HeadersFooters.Header.ChildObjects.Clear(); //删除页脚 section.HeadersFooters.Footer.ChildObjects.Clear(); //保存文档 doc.SaveToFile("result.docx", FileFormat.Docx); System.Diagnostics.Process.Start("result.docx"); } } }
删除效果:
2.删除首页的页眉页脚(适用于文档封面,不需要页眉页脚的情况,或者其他情形)
using Spire.Doc; namespace RemoveHeaderFooter2_Doc { class Program { static void Main(string[] args) { //创建一个Document实例并加载示例文档 Document doc = new Document(); doc.LoadFromFile("sample.docx"); //获取第一个section Section section = doc.Sections[0]; //设置页眉页脚首页不同 section.PageSetup.DifferentFirstPageHeaderFooter = true; //删除首页页眉页脚 section.HeadersFooters.FirstPageHeader.ChildObjects.Clear(); //保存文档 doc.SaveToFile("output.docx", FileFormat.Docx); System.Diagnostics.Process.Start("output.docx"); } } }
删除效果:
(本文完)
相关推荐
页眉和页脚通常包含文档标题、页码或其他相关信息。ITextSharp提供了一个名为PdfPageEventHelper的抽象类,我们可以继承它并覆盖其`OnStartPage`和`OnEndPage`方法来实现这一功能。 ```csharp public class ...
在使用C#编程时,有时我们需要对Word文档进行高级编辑,比如插入页眉和页脚。这在处理报告、论文或者任何需要统一格式的文档时非常有用。下面将详细介绍如何通过C#实现在Word中插入页眉和页脚。 ### 一、插入页脚的...
标题提到的"不打开OFFICE,插入页眉页脚",正是指如何在不启动Word的情况下,通过编程方式向Word文档添加页眉和页脚。这可以通过使用Microsoft的Open XML SDK 2.0来实现。 Open XML SDK 2.0是微软提供的一款强大的...
同时有个小问题没能解决,无法删除原有的页眉页脚: this.m_WordApp.ActiveWindow.ActivePane.Selection.Text = null; 该语句根本不起作用,改成其它的也不行,word开发文档实在太少了,微软也说的不表楚,盼大侠...
在网页打印过程中,有时我们可能需要去除不必要的页眉、页脚以及特定的页面元素,以获得更整洁的打印效果。本文将深入探讨如何通过CSS和JavaScript实现这一目标,以优化Web打印体验。 首先,理解CSS媒体查询是关键...
iText生成PDF设置页眉页脚的实例详解 iText是java语言中一个功能强大、功能齐全的PDF生成库,通过使用iText可以生成各种类型的PDF文档,包括设置页眉页脚的PDF文档。下面将详细介绍如何使用iText生成PDF设置页眉...
总结来说,C#中打印网页不显示页眉页脚的方法主要有通过IE页面设置、C#代码配置WebBrowser控件和JavaScript修改页面样式。每种方法都有其适用场景和限制,根据具体的需求和安全性考虑,可以选择合适的方式来实现这一...
这个压缩包中的资源,"批量添加 Word 文档页眉页脚源--源代码",提供了一个解决方案,用于自动为多个Word文档添加页眉和页脚。这个功能在处理大量报告、论文或者企业文档时尤其有用,可以避免手动逐个编辑的繁琐工作...
基于Open Xml 实现的带页眉页脚页码的 Html 转Word 功能 跟 Microsoft.Office.Interop.Word 的 Com 组件相比优势如下: 1、服务器不用安装Office 即可生成Word 格式的文件; 2、服务器不用配置 繁琐的Com组件的权限...
itext7 html转换为pdf;iText7页码、页眉、页脚,itext 的复杂表格实现;完整springboot项目代码
Word 2000及后续版本提供了这样的功能,允许用户在奇偶页的页眉和页脚中设置不同的内容,从而实现类似的专业效果。 首先,我们要解决一个问题,即如何让正文从第二页开始显示页码“1”,同时封面不显示页码。这可以...
本demo用C# 实现了了word excel visio 添加页眉页脚和内容,其中word 添加了页脚,excel添加了首行内容,visio 添加了一个矩形容器 并设置了透明背景,增加了指定字号的文字
这两个方法会在每一页开始和结束时被调用,正是我们添加页眉和页脚的地方。 4. **在页面事件中添加内容**:在`onStartPage()`和`onEndPage()`方法中,我们可以使用`ColumnText`类来添加文本,或者使用`...
在C#编程环境中,我们可以利用COM(Component Object Model)组件来与WPS Office进行交互,实现对文档的各种操作,如本例中所述的在页眉中添加图片。下面将详细介绍这个过程,以及如何通过源代码实现这一功能。 ...
NPOI是一个强大的开源库,主要用于处理Microsoft Office文档,如Excel和Word,它在.NET环境中提供了操作这些文件的强大功能。在这个特定的场景中,我们关注的是NPOI在Excel页眉中插入图片的能力。虽然标题提到的是...
在C#中对Word文档进行操作,主要借助于Microsoft.Office.Interop.Word这个命名空间中的类型,它提供了与Word交互的能力。以下是一些关键知识点: 1. **Interop服务**: Interop是.NET框架提供的一种机制,用于与非...
非常好用的一个C#操作word的类库。能在word文档中任意位子写文字以及段落和表格(带线和不带线以及虚线)、图片、页眉页脚。word能操作的,这个类库基本都可以完成。下载直接使用。
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用程序时。...不过,实际开发中,你可能还需要根据具体场景进行更复杂的操作,比如插入图片、表格、页眉页脚等,这都需要对Word的API有更深入的理解。