DifferentFirstPageHeaderFooter
内容
[
隐藏
]PageSetup.DifferentFirstPageHeaderFooter property
如果在第一页上使用不同的页眉或页脚,则为 True。
public bool DifferentFirstPageHeaderFooter { get; set; }
例子
演示如何使用 DocumentBuilder 在文档中创建页眉和页脚。
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 指定我们希望首页、偶数页和奇数页使用不同的页眉和页脚。
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;
// 创建标题,然后向文档添加三个页面以显示每种标题类型。
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
builder.Write("Header for the first page");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderEven);
builder.Write("Header for even pages");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.Write("Header for all other pages");
builder.MoveToSection(0);
builder.Writeln("Page1");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page2");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page3");
doc.Save(ArtifactsDir + "DocumentBuilder.HeadersAndFooters.docx");
显示如何启用或禁用主页眉/页脚。
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 下面是两种类型的页眉/页脚。
// 1 - “第一个”页眉/页脚,出现在该部分的第一页上。
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
builder.Writeln("First page header.");
builder.MoveToHeaderFooter(HeaderFooterType.FooterFirst);
builder.Writeln("First page footer.");
// 2 - “主要”页眉/页脚,出现在该部分的每个页面上。
// 我们可以用第一个和偶数页页眉/页脚覆盖主页眉/页脚。
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.Writeln("Primary header.");
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
builder.Writeln("Primary footer.");
builder.MoveToSection(0);
builder.Writeln("Page 1.");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page 2.");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page 3.");
// 每个部分都有一个“PageSetup”对象,用于指定页面外观相关的属性
// 例如方向、大小和边框。
// 将“DifferentFirstPageHeaderFooter”属性设置为“true”以将第一个页眉/页脚应用于第一页。
// 将“DifferentFirstPageHeaderFooter”属性设置为“false”
// 使第一页显示主页眉/页脚。
builder.PageSetup.DifferentFirstPageHeaderFooter = differentFirstPageHeaderFooter;
doc.Save(ArtifactsDir + "PageSetup.DifferentFirstPageHeaderFooter.docx");
展示如何跟踪文本替换操作遍历节点的顺序。
public void Order(bool differentFirstPageHeaderFooter)
{
Document doc = new Document(MyDir + "Header and footer types.docx");
Section firstPageSection = doc.FirstSection;
ReplaceLog logger = new ReplaceLog();
FindReplaceOptions options = new FindReplaceOptions { ReplacingCallback = logger };
// 第一页使用不同的页眉/页脚会影响搜索顺序。
firstPageSection.PageSetup.DifferentFirstPageHeaderFooter = differentFirstPageHeaderFooter;
doc.Range.Replace(new Regex("(header|footer)"), "", options);
#if NET48 || NET5_0_OR_GREATER || JAVA
if (differentFirstPageHeaderFooter)
Assert.AreEqual("First header\nFirst footer\nSecond header\nSecond footer\nThird header\nThird footer\n",
logger.Text.Replace("\r", ""));
else
Assert.AreEqual("Third header\nFirst header\nThird footer\nFirst footer\nSecond header\nSecond footer\n",
logger.Text.Replace("\r", ""));
#elif __MOBILE__
if (differentFirstPageHeaderFooter)
Assert.AreEqual("First header\nFirst footer\nSecond header\nSecond footer\nThird header\nThird footer\n", logger.Text);
else
Assert.AreEqual("Third header\nFirst header\nThird footer\nFirst footer\nSecond header\nSecond footer\n", logger.Text);
#endif
}
/// <summary>
/// 在查找和替换操作期间,记录具有操作“查找”文本的每个节点的内容,
/// 处于替换发生之前的状态。
/// 这将显示文本替换操作遍历节点的顺序。
/// </summary>
private class ReplaceLog : IReplacingCallback
{
public ReplaceAction Replacing(ReplacingArgs args)
{
mTextBuilder.AppendLine(args.MatchNode.GetText());
return ReplaceAction.Skip;
}
internal string Text => mTextBuilder.ToString();
private readonly StringBuilder mTextBuilder = new StringBuilder();
}
也可以看看
- class PageSetup
- 命名空间 Aspose.Words
- 部件 Aspose.Words