ExportTocPageNumbers

HtmlSaveOptions.ExportTocPageNumbers property

指定保存 HTML、MHTML 和 EPUB 时是否将页码写入目录。 默认值为错误的.

public bool ExportTocPageNumbers { get; set; }

例子

演示将带有目录的文档保存为 .html 时如何显示页码。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 插入目录,然后使用“标题”格式化的段落填充文档
// 目录将选取作为条目的样式。每个条目都会在左侧显示标题段落,
// 以及包含右侧标题的页码。
FieldToc fieldToc = (FieldToc)builder.InsertField(FieldType.FieldTOC, true);

builder.ParagraphFormat.Style = builder.Document.Styles["Heading 1"];
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Entry 1");
builder.Writeln("Entry 2");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Entry 3");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Entry 4");
fieldToc.UpdatePageNumbers();
doc.UpdateFields();

// HTML 文档没有页面。如果我们将此文档保存为 HTML,
// 我们的目录显示的页码没有任何意义。
// 当我们将文档保存为 HTML 时,我们可以传递一个 SaveOptions 对象来省略 TOC 中的这些页码。
// 如果我们将“ExportTocPageNumbers”标志设置为“true”,
// 每个目录条目将显示标题、分隔符和页码,保留其在 Microsoft Word 中的外观。
// 如果我们将“ExportTocPageNumbers”标志设置为“false”,
// 保存操作将省略分隔符和页码,并保持每个条目的标题不变。
HtmlSaveOptions options = new HtmlSaveOptions { ExportTocPageNumbers = exportTocPageNumbers };

doc.Save(ArtifactsDir + "HtmlSaveOptions.ExportTocPageNumbers.html", options);

string outDocContents = File.ReadAllText(ArtifactsDir + "HtmlSaveOptions.ExportTocPageNumbers.html");

if (exportTocPageNumbers)
{
    Assert.True(outDocContents.Contains(
        "<span>Entry 1</span>" +
        "<span style=\"width:428.14pt; font-family:'Lucida Console'; font-size:10pt; display:inline-block; -aw-font-family:'Times New Roman'; " +
        "-aw-tabstop-align:right; -aw-tabstop-leader:dots; -aw-tabstop-pos:469.8pt\">.......................................................................</span>" +
        "<span>2</span>" +
        "</p>"));
}
else
{
    Assert.True(outDocContents.Contains(
        "<p style=\"margin-top:0pt; margin-bottom:0pt\">" +
        "<span>Entry 2</span>" +
        "</p>"));
}

也可以看看