MoveToBookmark
内容
[
隐藏
]MoveToBookmark(string)
将光标移动到书签。
public bool MoveToBookmark(string bookmarkName)
范围 | 类型 | 描述 |
---|---|---|
bookmarkName | String | 将光标移动到的书签的名称。 |
返回值
真的
如果找到书签;错误的
否则。
评论
将光标移动到指定名称 的书签开头后面的位置。
比较不区分大小写。如果没有找到书签,错误的
is 返回并且光标未移动。
插入新文本不会替换书签的现有文本。
请注意,文档中的某些书签已分配给表单字段。 移动到此类书签并在其中插入文本会将文本插入到 表单字段代码中。虽然这不会使表单字段无效,但 insert 文本将不可见,因为它成为字段代码的一部分。
例子
演示如何将文档生成器的光标移动到文档中的不同节点。
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 创建一个有效的书签,一个由书签起始节点包围的节点组成的实体,
// 和一个书签结束节点。
builder.StartBookmark("MyBookmark");
builder.Write("Bookmark contents.");
builder.EndBookmark("MyBookmark");
NodeCollection firstParagraphNodes = doc.FirstSection.Body.FirstParagraph.GetChildNodes(NodeType.Any, false);
Assert.AreEqual(NodeType.BookmarkStart, firstParagraphNodes[0].NodeType);
Assert.AreEqual(NodeType.Run, firstParagraphNodes[1].NodeType);
Assert.AreEqual("Bookmark contents.", firstParagraphNodes[1].GetText().Trim());
Assert.AreEqual(NodeType.BookmarkEnd, firstParagraphNodes[2].NodeType);
// 文档构建器的光标始终位于我们最后添加的节点之前。
// 如果构建器的光标位于文档末尾,则其当前节点将为空。
// 前一个节点是我们最后添加的书签结束节点。
// 使用构建器添加新节点会将它们附加到最后一个节点。
Assert.Null(builder.CurrentNode);
// 如果我们希望使用构建器编辑文档的不同部分,
// 我们需要将光标移至我们想要编辑的节点。
builder.MoveToBookmark("MyBookmark");
// 将其移动到书签会将其移动到书签开始和结束节点中的第一个节点,即封闭的运行。
Assert.AreEqual(firstParagraphNodes[1], builder.CurrentNode);
// 我们也可以像这样将光标移动到单个节点。
builder.MoveTo(doc.FirstSection.Body.FirstParagraph.GetChildNodes(NodeType.Any, false)[0]);
Assert.AreEqual(NodeType.BookmarkStart, builder.CurrentNode.NodeType);
Assert.AreEqual(doc.FirstSection.Body.FirstParagraph, builder.CurrentParagraph);
Assert.IsTrue(builder.IsAtStartOfParagraph);
// 我们可以使用特定的方法来移动到文档的开头/结尾。
builder.MoveToDocumentEnd();
Assert.IsTrue(builder.IsAtEndOfParagraph);
builder.MoveToDocumentStart();
Assert.IsTrue(builder.IsAtStartOfParagraph);
也可以看看
- class DocumentBuilder
- 命名空间 Aspose.Words
- 部件 Aspose.Words
MoveToBookmark(string, bool, bool)
以更高精度将光标移动到书签。
public bool MoveToBookmark(string bookmarkName, bool isStart, bool isAfter)
范围 | 类型 | 描述 |
---|---|---|
bookmarkName | String | 将光标移动到的书签的名称。 |
isStart | Boolean | 什么时候真的 , 将光标移动到书签的开头。 时错误的 ,将光标移动到书签末尾。 |
isAfter | Boolean | 什么时候真的 ,将光标移动到 bookmark 开始或结束位置之后。什么时候错误的 ,将光标移动到 bookmark 开始或结束位置之前。 |
返回值
真的
如果找到书签;错误的
否则。
评论
将光标移动到书签开始或结束之前或之后的位置。
如果所需位置不在行内级别,则移至下一个段落。
比较不区分大小写。如果没有找到书签,错误的
is 返回并且光标未移动。
例子
演示如何将文档生成器的节点插入点光标移动到书签。
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 一个有效的书签由一个 BookmarkStart 节点、一个 BookmarkEnd 节点和一个
// 随后匹配书签名称以及这些节点包含的内容。
builder.StartBookmark("MyBookmark");
builder.Write("Hello world! ");
builder.EndBookmark("MyBookmark");
// 有 4 种方法可以将文档生成器的光标移动到书签。
// 如果我们位于 BookmarkStart 和 BookmarkEnd 节点之间,则光标将位于书签内。
// 这意味着构建器添加的任何文本都将成为书签的一部分。
// 1 - 在书签之外,在 BookmarkStart 节点前面:
Assert.True(builder.MoveToBookmark("MyBookmark", true, false));
builder.Write("1. ");
Assert.AreEqual("Hello world! ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. Hello world!", doc.GetText().Trim());
// 2 - 在书签内,位于 BookmarkStart 节点之后:
Assert.True(builder.MoveToBookmark("MyBookmark", true, true));
builder.Write("2. ");
Assert.AreEqual("2. Hello world! ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. 2. Hello world!", doc.GetText().Trim());
// 2 - 在书签内,位于 BookmarkEnd 节点的正前方:
Assert.True(builder.MoveToBookmark("MyBookmark", false, false));
builder.Write("3. ");
Assert.AreEqual("2. Hello world! 3. ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. 2. Hello world! 3.", doc.GetText().Trim());
// 4 - 在书签之外,BookmarkEnd 节点之后:
Assert.True(builder.MoveToBookmark("MyBookmark", false, true));
builder.Write("4.");
Assert.AreEqual("2. Hello world! 3. ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. 2. Hello world! 3. 4.", doc.GetText().Trim());
也可以看看
- class DocumentBuilder
- 命名空间 Aspose.Words
- 部件 Aspose.Words