HeaderFooter

HeaderFooter class

表示节的页眉或页脚文本的容器。

public class HeaderFooter : Story

构造函数

姓名 描述
HeaderFooter(DocumentBase, HeaderFooterType) 创建指定类型的新页眉或页脚。

特性

姓名 描述
ChildNodes { get; } 获取该节点的所有直接子节点。
Count { get; } 获取此节点的直接子节点数。
CustomNodeId { get; set; } 指定自定义节点标识符。
virtual Document { get; } 获取该节点所属的文档。
FirstChild { get; } 获取节点的第一个子节点。
FirstParagraph { get; } 获取故事的第一段。
HasChildNodes { get; } 如果此节点有任何子节点,则返回 true。
HeaderFooterType { get; } 获取此页眉/页脚的类型。
override IsComposite { get; } 返回真,因为该节点可以有子节点。
IsHeader { get; } 如果这个为真 页眉页脚对象是一个标题。
IsLinkedToPrevious { get; set; } 如果此页眉或页脚链接到上一节中的相应页眉或页脚 ,则为真。
LastChild { get; } 获取节点的最后一个子节点。
LastParagraph { get; } 获取故事的最后一段。
NextSibling { get; } 获取紧跟此节点的节点。
override NodeType { get; } 返回 NodeType.HeaderFooter.
Paragraphs { get; } 获取作为故事直接子级的段落集合。
ParentNode { get; } 获取此节点的直接父节点。
ParentSection { get; } 获取此故事的父部分。
PreviousSibling { get; } 获取紧接在此节点之前的节点。
Range { get; } 返回一个 范围表示此节点中包含的文档部分的对象。
StoryType { get; } 获取这个故事的类型。
Tables { get; } 获取作为故事直接子级的表的集合。

方法

姓名 描述
override Accept(DocumentVisitor) 接受访客。
AppendChild(Node) 将指定节点添加到该节点的子节点列表的末尾。
AppendParagraph(string) 创建一个快捷方式Paragraph带有可选文本的对象并将其附加到此对象的末尾。
Clone(bool) 创建节点的副本。
CreateNavigator() 保留供系统使用。 IXPathNavigable.
DeleteShapes() 从这个故事的文本中删除所有形状。
GetAncestor(NodeType) 获取指定的第一个祖先NodeType.
GetAncestor(Type) 获取指定对象类型的第一个祖先。
GetChild(NodeType, int, bool) 返回与指定类型匹配的第 N 个子节点。
GetChildNodes(NodeType, bool) 返回与指定类型匹配的子节点的实时集合。
GetEnumerator() 为在该节点的子节点上的每个样式迭代提供支持。
override GetText() 获取该节点及其所有子节点的文本。
IndexOf(Node) 返回子节点数组中指定子节点的索引。
InsertAfter(Node, Node) 在指定参考节点之后立即插入指定节点。
InsertBefore(Node, Node) 在指定的参考节点之前插入指定的节点。
NextPreOrder(Node) 根据前序树遍历算法获取下一个节点。
PrependChild(Node) 将指定节点添加到此节点的子节点列表的开头。
PreviousPreOrder(Node) 根据前序树遍历算法获取上一个节点。
Remove() 从父级中移除自身。
RemoveAllChildren() 移除当前节点的所有子节点。
RemoveChild(Node) 移除指定的子节点。
RemoveSmartTags() 删除所有SmartTag当前节点的后代节点。
SelectNodes(string) 选择与 XPath 表达式匹配的节点列表。
SelectSingleNode(string) 选择与 XPath 表达式匹配的第一个节点。
ToString(SaveFormat) 将节点的内容导出为指定格式的字符串。
ToString(SaveOptions) 使用指定的保存选项将节点的内容导出为字符串。

评论

页眉页脚可以包含 段落桌子子节点。

页眉页脚是节级节点,只能是 部分 . 只能有一个 页眉页脚或每个HeaderFooterType在一个 部分.

如果 部分没有 页眉页脚特定类型或 的 页眉页脚没有子节点,此页眉/页脚被认为链接到 Microsoft Word 中上一节相同类型的页眉/页脚。

什么时候 页眉页脚至少包含一个 段落,它不再 被认为与 Microsoft Word 中的先前链接。

例子

显示如何替换文档页脚中的文本。

Document doc = new Document(MyDir + "Footer.docx");

HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];

FindReplaceOptions options = new FindReplaceOptions
{
    MatchCase = false,
    FindWholeWordsOnly = false
};

int currentYear = DateTime.Now.Year;
footer.Range.Replace("(C) 2006 Aspose Pty Ltd.", $"Copyright (C) {currentYear} by Aspose Pty Ltd.", options);

doc.Save(ArtifactsDir + "HeaderFooter.ReplaceText.docx");

显示如何从文档中删除所有页脚。

Document doc = new Document(MyDir + "Header and footer types.docx");

// 遍历每个部分并删除各种页脚。
foreach (Section section in doc.OfType<Section>())
{
    // 共有三种页脚和页眉类型。
    // 1 - “第一个”页眉/页脚,仅出现在部分的第一页上。
    HeaderFooter footer = section.HeadersFooters[HeaderFooterType.FooterFirst];
    footer?.Remove();

    // 2 - “主要”页眉/页脚,出现在奇数页上。
    footer = section.HeadersFooters[HeaderFooterType.FooterPrimary];
    footer?.Remove();

     // 3 - “偶数”页眉/页脚,出现在偶数页上。
    footer = section.HeadersFooters[HeaderFooterType.FooterEven];
    footer?.Remove();

    Assert.AreEqual(0, section.HeadersFooters.Count(hf => !((HeaderFooter)hf).IsHeader));
}

doc.Save(ArtifactsDir + "HeaderFooter.RemoveFooters.docx");

显示如何创建页眉和页脚。

Document doc = new Document();

// 创建一个标题并在其上附加一个段落。该段中的文字
// 将出现在本节每一页的顶部,主体文本上方。
HeaderFooter header = new HeaderFooter(doc, HeaderFooterType.HeaderPrimary);
doc.FirstSection.HeadersFooters.Add(header);

Paragraph para = header.AppendParagraph("My header.");

Assert.True(header.IsHeader);
Assert.True(para.IsEndOfHeaderFooter);

// 创建一个页脚并向其附加一个段落。该段中的文字
// 将出现在本节每一页的底部,主体文本下方。
HeaderFooter footer = new HeaderFooter(doc, HeaderFooterType.FooterPrimary);
doc.FirstSection.HeadersFooters.Add(footer);

para = footer.AppendParagraph("My footer.");

Assert.False(footer.IsHeader);
Assert.True(para.IsEndOfHeaderFooter);

Assert.AreEqual(footer, para.ParentStory);
Assert.AreEqual(footer.ParentSection, para.ParentSection);
Assert.AreEqual(footer.ParentSection, header.ParentSection);

doc.Save(ArtifactsDir + "HeaderFooter.Create.docx");

也可以看看