使用页眉和页脚
Aspose.Words 允许用户在文档中使用页眉和页脚。页眉是放置在页面顶部的文本,页脚是放置在页面底部的文本。通常,这些区域用于插入应在文档的所有页面或某些页面上重复的信息,例如页码、创建日期、公司信息等。
使用 DocumentBuilder 创建页眉或页脚
如果您想以编程方式添加文档页眉或页脚,最简单的方法是使用 DocumentBuilder 类来完成。
以下代码示例演示如何为文档页面添加页眉和页脚:
指定页眉或页脚选项
当您向文档添加页眉或页脚时,您可以设置一些高级属性。 Aspose.Words 为用户提供了 HeaderFooter 和 HeaderFooterCollection 类以及 HeaderFooterType 枚举,使您可以更好地控制页眉和页脚自定义过程。
指定页眉或页脚类型
您可以为一个文档指定三种不同的页眉类型和三种不同的页脚类型:
- 第一页的页眉和/或页脚
- 偶数页的页眉和/或页脚
- 奇数页的页眉和/或页脚
以下代码示例显示如何为奇数文档页面添加页眉:
指定是否为首页显示不同的页眉或页脚
如上所述,您还可以为首页设置不同的页眉或页脚。为此,您需要将 DifferentFirstPageHeaderFooter 标志设置为 true
,然后指定 HeaderFirst 或 FooterFirst 值。
以下代码示例显示如何仅设置第一页的标题:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Specify that we want different headers and footers for first page. | |
builder.PageSetup.DifferentFirstPageHeaderFooter = true; | |
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst); | |
builder.Write("Header for the first page."); | |
builder.MoveToHeaderFooter(HeaderFooterType.FooterFirst); | |
builder.Write("Footer for the first page."); | |
builder.MoveToSection(0); | |
builder.Writeln("Page 1"); | |
builder.InsertBreak(BreakType.PageBreak); | |
builder.Writeln("Page 2"); | |
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.DifferentFirstPage.docx"); |
指定奇数页或偶数页是否显示不同的页眉或页脚
接下来,您需要为文档中的奇数页和偶数页设置不同的页眉或页脚。为此,您需要将 OddAndEvenPagesHeaderFooter 标志设置为 true
,然后指定值 HeaderPrimary 和 HeaderEven,或 FooterPrimary 和 FooterEven。
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Specify that we want different headers and footers for even and odd pages. | |
builder.PageSetup.OddAndEvenPagesHeaderFooter = true; | |
builder.MoveToHeaderFooter(HeaderFooterType.HeaderEven); | |
builder.Write("Header for even pages."); | |
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary); | |
builder.Write("Header for odd pages."); | |
builder.MoveToHeaderFooter(HeaderFooterType.FooterEven); | |
builder.Write("Footer for even pages."); | |
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary); | |
builder.Write("Footer for odd pages."); | |
builder.MoveToSection(0); | |
builder.Writeln("Page 1"); | |
builder.InsertBreak(BreakType.PageBreak); | |
builder.Writeln("Page 2"); | |
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.OddEvenPages.docx"); |
将绝对定位的图像插入标题中
要将图像放置在页眉或页脚中,请使用 HeaderPrimary 页眉类型或 FooterPrimary 页脚类型和 InsertImage 方法。
以下代码示例展示了如何将图像添加到标题:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary); | |
builder.InsertImage(ImagesDir + "Logo.jpg", RelativeHorizontalPosition.RightMargin, 10, | |
RelativeVerticalPosition.Page, 10, 50, 50, WrapType.Through); | |
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.InsertImage.docx"); |
设置页眉或页脚文本的字体和段落属性
使用 Aspose.Words,您可以设置字体和段落属性,使用 HeaderPrimary 页眉类型或 FooterPrimary 页脚类型,以及用于处理文档正文所用字体和段落的方法和属性。
以下代码示例演示如何将标题中的文本设置为 Arial、粗体、字号 14 和居中对齐:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary); | |
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; | |
builder.Font.Name = "Arial"; | |
builder.Font.Bold = true; | |
builder.Font.Size = 14; | |
builder.Write("Header for page."); | |
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.FontProps.docx"); |
将页码插入页眉或页脚
如有必要,您可以将页码添加到页眉或页脚。为此,请使用 HeaderPrimary 标头类型或 FooterPrimary 页脚类型和 InsertField 方法来添加所需字段。
以下代码示例演示如何将页码添加到右侧页脚:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary); | |
builder.ParagraphFormat.Alignment = ParagraphAlignment.Right; | |
builder.Write("Page "); | |
builder.InsertField("PAGE", ""); | |
builder.Write(" of "); | |
builder.InsertField("NUMPAGES", ""); | |
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.PageNumbers.docx"); |
使用上一节中定义的页眉或页脚
如果您需要复制上一节中的页眉或页脚,您也可以这样做。
以下代码示例演示如何复制上一节中的页眉或页脚:
使用不同的页面方向和页面大小时确保页眉或页脚的外观
Aspose.Words 允许您在使用不同方向和页面大小时提供页眉或页脚的外观。
以下示例展示了如何执行此操作:
如何仅删除页眉或仅删除页脚
文档中的每个部分最多可以有三个页眉和三个页脚(对于第一页、偶数页和奇数页)。如果要删除文档中的所有页眉或所有页脚,则需要循环遍历所有部分并删除每个相应的页眉节点或页脚节点。
以下代码示例演示如何从所有部分中删除所有页脚,但保持页眉完好无损。您可以以类似的方式仅删除标头: