Independentsoft
Home
Products
Purchase
Support
Downloads
Company
Contact
Word .NET
>
Tutorial
> Display all bookmarks
The example shows you how to open a document and find and display all bookmarks.
C# example
using System; using Independentsoft.Office; using Independentsoft.Office.Word; namespace Sample { class Program { static void Main(string[] args) { WordDocument doc = new WordDocument("c:\\test\\input.docx"); foreach (IBlockElement blockElement in doc.Body.Content) { if (blockElement is Paragraph) { Paragraph paragraph = (Paragraph)blockElement; long bookmarkID = -1; string bookmarkName = null; string bookmarkText = null; for (int i = 0; i < paragraph.Content.Count; i++) { if (paragraph.Content[i] is BookmarkStart) { BookmarkStart bookmarkStart = (BookmarkStart)paragraph.Content[i]; bookmarkID = bookmarkStart.ID; bookmarkName = bookmarkStart.Name; bookmarkText = ""; } if (paragraph.Content[i] is BookmarkEnd) { BookmarkEnd bookmarkEnd = (BookmarkEnd)paragraph.Content[i]; if (bookmarkEnd.ID == bookmarkID) { Console.WriteLine("Bookmark ID = " + bookmarkID); Console.WriteLine("Bookmark Name = " + bookmarkName); Console.WriteLine("Bookmark Text = " + bookmarkText); } } if (paragraph.Content[i] is Run) { Run run = (Run)paragraph.Content[i]; for (int j = 0; j < run.Content.Count; j++) { if (run.Content[j] is Text) { Text text = (Text)run.Content[j]; bookmarkText += text.Value; } } } } } } Console.Read(); } } }
VB example
Imports System Imports Independentsoft.Office Imports Independentsoft.Office.Word Module Module1 Sub Main(ByVal args() As String) Dim doc As New WordDocument("c:\test\input.docx") For Each blockElement As IBlockElement In doc.Body.Content If TypeOf blockElement Is Paragraph Then Dim paragraph As Paragraph = DirectCast(blockElement, Paragraph) Dim bookmarkID As Long = -1 Dim bookmarkName As String = Nothing Dim bookmarkText As String = Nothing For i As Integer = 0 To paragraph.Content.Count - 1 If TypeOf paragraph.Content(i) Is BookmarkStart Then Dim bookmarkStart As BookmarkStart = DirectCast(paragraph.Content(i), BookmarkStart) bookmarkID = bookmarkStart.ID bookmarkName = bookmarkStart.Name bookmarkText = "" End If If TypeOf paragraph.Content(i) Is BookmarkEnd Then Dim bookmarkEnd As BookmarkEnd = DirectCast(paragraph.Content(i), BookmarkEnd) If bookmarkEnd.ID = bookmarkID Then Console.WriteLine("Bookmark ID = " & bookmarkID) Console.WriteLine("Bookmark Name = " & bookmarkName) Console.WriteLine("Bookmark Text = " & bookmarkText) End If End If If TypeOf paragraph.Content(i) Is Run Then Dim run As Run = DirectCast(paragraph.Content(i), Run) For j As Integer = 0 To run.Content.Count - 1 If TypeOf run.Content(j) Is Text Then Dim text As Text = DirectCast(run.Content(j), Text) bookmarkText += text.Value End If Next End If Next End If Next Console.Read() End Sub End Module