GetBookmarkChildCount Method (GdPicturePDF)
Returns the number of child bookmark items (all descendants on lower level only) contained within a specified bookmark item in the bookmark's hierarchy of the currently loaded PDF document.
public int GetBookmarkChildCount(
int
)
public function GetBookmarkChildCount(
: Integer
): Integer;
public function GetBookmarkChildCount(
: int
) : int;
public: int GetBookmarkChildCount(
int
)
public:
int GetBookmarkChildCount(
int
)
'Declaration
Public Function GetBookmarkChildCount( _
ByVal As Integer _
) As Integer
Parameters
- BookmarkID
- A unique bookmark identifier specifying a required bookmark object.
You can obtain this identifier using these methods: GdPicturePDF.NewBookmark, GdPicturePDF.GetBookmarkRootID, GdPicturePDF.GetBookmarkFirstChildID, GdPicturePDF.GetBookmarkNextID, GdPicturePDF.GetBookmarkPrevID or GdPicturePDF.GetBookmarkParentID.
Return Value
The number of all child bookmark items contained within the specified bookmark in the bookmark's hierarchy. The
GdPicturePDF.GetStat method can be subsequently used to determine if this method has been successful.
This example shows you titles of all bookmark entries in the PDF document organized by the top level (denoted as level 0).
'The main entry point.
Dim caption As String = "Example: GetBookmarkChildCount"
Dim gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.LoadFromFile("bookmarks.pdf", False)
If status = GdPictureStatus.OK Then
Dim message As String = ""
Dim rootID As Integer = gdpicturePDF.GetBookmarkRootID()
status = gdpicturePDF.GetStat()
If status = GdPictureStatus.OK Then
'Please see the sub-method below.
ParseOutlines(gdpicturePDF, rootID, 0, message)
MessageBox.Show("The example has been followed successfully.", caption)
Else
If status = GdPictureStatus.PropertyNotFound Then
MessageBox.Show("This PDF document doesn't contain any bookmarks.", caption)
Else
MessageBox.Show("The GetBookmarkRootID() method has failed with the status: " + status.ToString(), caption)
End If
End If
Else
MessageBox.Show("The file can't be loaded. Status: " + status.ToString(), caption)
End If
gdpicturePDF.Dispose()
'The sub-method.
Private Sub ParseOutlines(gdpicturePDF As GdPicturePDF, bookmarkID As Integer, level As Integer, ByRef message As String)
Dim title As String = ""
Dim status As GdPictureStatus = GdPictureStatus.OK
While True
title = gdpicturePDF.GetBookmarkTitle(bookmarkID)
status = gdpicturePDF.GetStat()
If status = GdPictureStatus.OK Then
message = message + "Title: """ + title + """ Level: " + level.ToString() + vbCrLf
Else
message = message + "Title: this error occurs - " + status.ToString() + " Level: " + level.ToString() + vbCrLf
End If
'Checking the children.
Dim childCount As Integer = gdpicturePDF.GetBookmarkChildCount(bookmarkID)
status = gdpicturePDF.GetStat()
If status <> GdPictureStatus.OK Then
message = message + "This error occurs in GetBookmarkChildCount(): status = " + status.ToString() + vbCrLf
End If
If childCount > 0 Then
Dim childID As Integer = gdpicturePDF.GetBookmarkFirstChildID(bookmarkID)
status = gdpicturePDF.GetStat()
If status <> GdPictureStatus.OK Then
message = message + "This error occurs in GetBookmarkFirstChildID(): status = " + status.ToString() + vbCrLf
Else
ParseOutlines(gdpicturePDF, childID, level + 1, message)
End If
End If
'Checking for subsequent bookmarks if the current bookmark has no children.
bookmarkID = gdpicturePDF.GetBookmarkNextID(bookmarkID)
status = gdpicturePDF.GetStat()
If (status <> GdPictureStatus.OK) AndAlso (status <> GdPictureStatus.PropertyNotFound) Then
message = message + "This error occurs in GetBookmarkNextID(): status = " + status.ToString() + vbCrLf
End If
If level = 0 Then
MessageBox.Show(message, "Example: GetBookmarkChildCount")
message = ""
End If
If bookmarkID = 0 Then
Exit While
End If
End While
Return
End Sub
//The main entry point.
string caption = "Example: GetBookmarkChildCount";
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.LoadFromFile("bookmarks.pdf", false);
if (status == GdPictureStatus.OK)
{
string message = "";
int rootID = gdpicturePDF.GetBookmarkRootID();
status = gdpicturePDF.GetStat();
if (status == GdPictureStatus.OK)
{
//Pleae see the sub-method below.
ParseOutlines(gdpicturePDF, rootID, 0, ref message);
MessageBox.Show("The example has been followed successfully.", caption);
}
else
{
if (status == GdPictureStatus.PropertyNotFound)
MessageBox.Show("This PDF document doesn't contain any bookmarks.", caption);
else
MessageBox.Show("The GetBookmarkRootID() method has failed with the status: " + status.ToString(), caption);
}
}
else
{
MessageBox.Show("The file can't be loaded. Status: " + status.ToString(), caption);
}
gdpicturePDF.Dispose();
//The sub-method.
void ParseOutlines(GdPicturePDF gdpicturePDF, int bookmarkID, int level, ref string message)
{
string title = "";
GdPictureStatus status = GdPictureStatus.OK;
while (true)
{
title = gdpicturePDF.GetBookmarkTitle(bookmarkID);
status = gdpicturePDF.GetStat();
if (status == GdPictureStatus.OK)
message = message + "Title: \"" + title + "\" Level: " + level.ToString() + "\n";
else
message = message + "Title: this error occurs - " + status.ToString() + " Level: " + level.ToString() + "\n";
//Checking children.
int childCount = gdpicturePDF.GetBookmarkChildCount(bookmarkID);
status = gdpicturePDF.GetStat();
if (status != GdPictureStatus.OK)
message = message + "This error occurs in GetBookmarkChildCount(): status = " + status.ToString() + "\n";
if (childCount > 0)
{
int childID = gdpicturePDF.GetBookmarkFirstChildID(bookmarkID);
status = gdpicturePDF.GetStat();
if (status != GdPictureStatus.OK)
message = message + "This error occurs in GetBookmarkFirstChildID(): status = " + status.ToString() + "\n";
else
{
ParseOutlines(gdpicturePDF, childID, level + 1, ref message);
}
}
//Checking for subsequent bookmarks if the current bookmark has no children.
bookmarkID = gdpicturePDF.GetBookmarkNextID(bookmarkID);
status = gdpicturePDF.GetStat();
if ((status != GdPictureStatus.OK) && (status != GdPictureStatus.PropertyNotFound))
message = message + "This error occurs in GetBookmarkNextID(): status = " + status.ToString() + "\n";
if (level == 0)
{
MessageBox.Show(message, "Example: GetBookmarkChildCount");
message = "";
}
if (bookmarkID == 0)
break;
}
return;
}