Current
内容
[
隐藏
]LayoutEnumerator.Current property
获取或设置页面布局模型中的当前位置。 此属性返回与当前布局实体相对应的不透明对象。
public object Current { get; set; }
例子
演示如何查看节点跨越的页面范围。
Document doc = new Document();
LayoutCollector layoutCollector = new LayoutCollector(doc);
// 调用“GetNumPagesSpanned”方法来计算文档内容跨越了多少页。
// 由于文档为空,因此页数当前为零。
Assert.AreEqual(doc, layoutCollector.Document);
Assert.AreEqual(0, layoutCollector.GetNumPagesSpanned(doc));
// 用 5 页内容填充文档。
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Section 1");
builder.InsertBreak(BreakType.PageBreak);
builder.InsertBreak(BreakType.PageBreak);
builder.InsertBreak(BreakType.SectionBreakEvenPage);
builder.Write("Section 2");
builder.InsertBreak(BreakType.PageBreak);
builder.InsertBreak(BreakType.PageBreak);
// 在布局收集器之前,我们需要调用“UpdatePageLayout”方法来给我们
// 任何与布局相关的指标的准确数字,例如页数。
Assert.AreEqual(0, layoutCollector.GetNumPagesSpanned(doc));
layoutCollector.Clear();
doc.UpdatePageLayout();
Assert.AreEqual(5, layoutCollector.GetNumPagesSpanned(doc));
// 我们可以看到任意节点的起始页和结束页的数量以及它们的总页跨度。
NodeCollection nodes = doc.GetChildNodes(NodeType.Any, true);
foreach (Node node in nodes)
{
Console.WriteLine($"-> NodeType.{node.NodeType}: ");
Console.WriteLine(
$"\tStarts on page {layoutCollector.GetStartPageIndex(node)}, ends on page {layoutCollector.GetEndPageIndex(node)}," +
$" spanning {layoutCollector.GetNumPagesSpanned(node)} pages.");
}
// 我们可以使用 LayoutEnumerator 迭代布局实体。
LayoutEnumerator layoutEnumerator = new LayoutEnumerator(doc);
Assert.AreEqual(LayoutEntityType.Page, layoutEnumerator.Type);
// LayoutEnumerator 可以像树一样遍历布局实体的集合。
// 我们还可以将其应用于任何节点对应的布局实体。
layoutEnumerator.Current = layoutCollector.GetEntity(doc.GetChild(NodeType.Paragraph, 1, true));
Assert.AreEqual(LayoutEntityType.Span, layoutEnumerator.Type);
Assert.AreEqual("¶", layoutEnumerator.Text);
也可以看看
- class LayoutEnumerator
- 命名空间 Aspose.Words.Layout
- 部件 Aspose.Words