BookmarkCollection Class |
Namespace: Aspose.Words
The BookmarkCollection type exposes the following members.
| Name | Description | |
|---|---|---|
| Count |
Returns the number of bookmarks in the collection.
| |
| ItemInt32 |
Returns a bookmark at the specified index.
| |
| ItemString |
Returns a bookmark by name.
|
| Name | Description | |
|---|---|---|
| Clear |
Removes all bookmarks from this collection and from the document.
| |
| Equals | (Inherited from Object.) | |
| GetEnumerator |
Returns an enumerator object.
| |
| GetHashCode | (Inherited from Object.) | |
| GetType | (Inherited from Object.) | |
| Remove(String) |
Removes a bookmark with the specified name.
| |
| Remove(Bookmark) |
Removes the specified bookmark from the document.
| |
| RemoveAt |
Removes a bookmark at the specified index.
| |
| ToString | (Inherited from Object.) |
public void CreateUpdateAndPrintBookmarks() { // Create a document with 3 bookmarks: "MyBookmark 1", "MyBookmark 2", "MyBookmark 3" Document doc = CreateDocumentWithBookmarks(); BookmarkCollection bookmarks = doc.Range.Bookmarks; // Check that we have 3 bookmarks Assert.AreEqual(3, bookmarks.Count); // Look at initial values of our bookmarks PrintAllBookmarkInfo(bookmarks); // Obtain bookmarks from a bookmark collection by index/name and update their values bookmarks[0].Name = "Updated name of " + bookmarks[0].Name; bookmarks["MyBookmark 2"].Text = "Updated text content of " + bookmarks[1].Name; // Remove the latest bookmark // The bookmarked text is not deleted bookmarks[2].Remove(); bookmarks = doc.Range.Bookmarks; // Check that we have 2 bookmarks after the latest bookmark was deleted Assert.AreEqual(2, bookmarks.Count); // Look at updated values of our bookmarks PrintAllBookmarkInfo(bookmarks); } /// <summary> /// Create a document with bookmarks using the start and end nodes. /// </summary> private static Document CreateDocumentWithBookmarks() { DocumentBuilder builder = new DocumentBuilder(); Document doc = builder.Document; // An empty document has just one empty paragraph by default Paragraph p = doc.FirstSection.Body.FirstParagraph; // Add several bookmarks to the document for (int i = 1; i <= 3; i++) { string bookmarkName = "MyBookmark " + i; p.AppendChild(new Run(doc, "Text before bookmark.")); p.AppendChild(new BookmarkStart(doc, bookmarkName)); p.AppendChild(new Run(doc, "Text content of " + bookmarkName)); p.AppendChild(new BookmarkEnd(doc, bookmarkName)); p.AppendChild(new Run(doc, "Text after bookmark.\r\n")); } return builder.Document; } /// <summary> /// Use an iterator and a visitor to print info of every bookmark from within a document. /// </summary> private static void PrintAllBookmarkInfo(BookmarkCollection bookmarks) { // Create a DocumentVisitor BookmarkInfoPrinter bookmarkVisitor = new BookmarkInfoPrinter(); // Get the enumerator from the document's BookmarkCollection and iterate over the bookmarks using (IEnumerator<Bookmark> enumerator = bookmarks.GetEnumerator()) { while (enumerator.MoveNext()) { Bookmark currentBookmark = enumerator.Current; // Accept our DocumentVisitor it to print information about our bookmarks if (currentBookmark != null) { currentBookmark.BookmarkStart.Accept(bookmarkVisitor); currentBookmark.BookmarkEnd.Accept(bookmarkVisitor); // Prints a blank line Console.WriteLine(currentBookmark.BookmarkStart.GetText()); } } } } /// <summary> /// Visitor that prints bookmark information to the console. /// </summary> public class BookmarkInfoPrinter : DocumentVisitor { public override VisitorAction VisitBookmarkStart(BookmarkStart bookmarkStart) { Console.WriteLine("BookmarkStart name: \"{0}\", Content: \"{1}\"", bookmarkStart.Name, bookmarkStart.Bookmark.Text); return VisitorAction.Continue; } public override VisitorAction VisitBookmarkEnd(BookmarkEnd bookmarkEnd) { Console.WriteLine("BookmarkEnd name: \"{0}\"", bookmarkEnd.Name); return VisitorAction.Continue; } }