PDF Creator Pilot documentation |
Download CHM version of this manual. |
|
![]() ![]() ![]() ![]() Collapse AllThis method adds a new tree node to a tree of the outline items after the specified node (the previous sibling) along with an ASCII title.
|
| LONG AddOutlineAfter ( LONG outlineNode, BSTR title, FontCharset charset ) |
Parameters
outlineNode
Number of the outline node
title
ASCII title of the node
charset
Character set of the title
Return value
Number of the new node
Remarks
The number of the outline node can be retrieved from any node creating method, such as AddOutlineAfter, AddOutlineChild, GetNextSiblingOutline, and so on.
Example
Managing Outlines
Delphi
[copy to clipboard]
{ PDF object is supposed to be created }
PDF.ViewerMode := mtUseOutlines;
ch := fcDefault;
{ adding outlines }
outline1 := PDF.AddOutlineChild(PDF.GetRootOutline, 'Outline 1', ch);
outline3 := PDF.AddOutlineAfter(outline1, 'Outline 3', ch);
outline2 := PDF.AddOutlineBefore(outline3, 'Outline 2', ch);
outline4 := PDF.AddOutlineAfter(outline3, 'Outline 4', ch);
if 'Outline 4' = PDF.GetOutlineUnicodeTitle(outline4) then
PDF.DeleteOutline(outline4, false);
{ adding child nodes }
outline := outline1;
n := PDF.GetOutlineCount();
for i := 1 to n do
begin
PDF.AddOutlineChild(outline, 'Child ' + IntToStr(3*(i-1)+1), ch);
PDF.AddOutlineChild(outline, 'Child ' + IntToStr(3*(i-1)+2), ch);
PDF.AddOutlineChild(outline, 'Child ' + IntToStr(3*(i-1)+3), ch);
outline := PDF.GetNextSiblingOutline(outline);
end;
{ assigning actions }
action := PDF.CreateJavascriptAction('app.alert("Hello.")');
outline := outline1;
n := PDF.GetOutlineCount();
for i := 1 to n do
begin;
PDF.SetOutlineAction(outline, action);
outline := PDF.GetNextOutline(outline);
end;
{ changing node's text }
n := PDF.GetOutlineChildCount(outline3);
for i := 0 to n-1 do
begin;
outline := PDF.GetOutlineChild(outline3, i);
if outline = PDF.GetOutlineFirstChild(outline3) then
PDF.SetOutlineTitle(outline, 'Node''s first child.', ch)
else
if outline = PDF.GetOutlineLastChild(outline3) then
PDF.SetOutlineTitle(outline, 'Node''s last child.', ch)
else
PDF.SetOutlineTitle(outline, 'Node''s child.', ch)
end;
if PDF.IsOutlineExpanded(outline3) then
PDF.SetOutlineExpanded(outline3, false);
PDF.SaveToFile('test.pdf', true);
C/C++
[copy to clipboard]
// PDF object is supposed to be created
PDF->ViewerMode = mtUseOutlines;
FontCharset ch = fcDefault;
// adding outlines
long outline1 = PDF->AddOutlineChild(PDF.GetRootOutline, "Outline 1", ch);
long outline3 = PDF->AddOutlineAfter(outline1, "Outline 3", ch);
long outline2 = PDF->AddOutlineBefore(outline3, "Outline 2", ch);
long outline4 = PDF->AddOutlineAfter(outline3, "Outline 4", ch);
if (L"Outline 4" == PDF->GetOutlineUnicodeTitle(outline4))
PDF->DeleteOutline(outline4, false);
// adding child nodes
long outline = outline1;
long n = PDF->GetOutlineCount();
for (long i = 0; i < 3*n; i++)
{
PDF->AddOutlineChild(outline, "Child " & i, ch);
PDF->AddOutlineChild(outline, "Child " & i+1, ch);
PDF->AddOutlineChild(outline, "Child " & i+2, ch);
outline = PDF->GetNextSiblingOutline(outline);
i = i + 2;
}
// assigning actions
long action = PDF->CreateJavascriptAction("app.alert('Hello.')");
outline = outline1;
n = PDF->GetOutlineCount();
for (long i = 0; i < n; i++)
{
PDF->SetOutlineAction(outline, action);
outline = PDF->GetNextOutline(outline);
}
// changing node's text
n = PDF->GetOutlineChildCount(outline3);
for (long i = 0; i < n; i++)
{
outline = PDF->GetOutlineChild(outline3, i);
if (outline == PDF->GetOutlineFirstChild(outline3))
PDF->SetOutlineTitle(outline, "Node's first child.", ch);
else
{
if (outline == PDF->GetOutlineLastChild(outline3))
PDF->SetOutlineTitle(outline, "Node's last child.", ch);
else
PDF->SetOutlineTitle(outline, "Node's child.", ch);
}
}
if (PDF->IsOutlineExpanded(outline3))
PDF->SetOutlineExpanded(outline3, false);
PDF->SaveToFile("test.pdf", true);
C#
[copy to clipboard]
// PDF object is supposed to be created
PDF.ViewerMode = ModeType.mtUseOutlines;
FontCharset ch = FontCharset.fcDefault;
// adding outlines
long outline1 = PDF.AddOutlineChild(PDF.GetRootOutline, "Outline 1", ch);
long outline3 = PDF.AddOutlineAfter(outline1, "Outline 3", ch);
long outline2 = PDF.AddOutlineBefore(outline3, "Outline 2", ch);
long outline4 = PDF.AddOutlineAfter(outline3, "Outline 4", ch);
if ("Outline 4" == PDF.GetOutlineUnicodeTitle(outline4))
PDF.DeleteOutline(outline4, false);
// adding child nodes
long outline = outline1;
long n = PDF.GetOutlineCount();
for (long i = 0; i < 3*n; i++)
{
PDF.AddOutlineChild(outline, "Child " & i, ch);
PDF.AddOutlineChild(outline, "Child " & i+1, ch);
PDF.AddOutlineChild(outline, "Child " & i+2, ch);
outline = PDF.GetNextSiblingOutline(outline);
i = i + 2;
}
// assigning actions
long action = PDF.CreateJavascriptAction("app.alert('Hello.')");
outline = outline1;
n = PDF.GetOutlineCount();
for (long i = 0; i < n; i++)
{
PDF.SetOutlineAction(outline, action);
outline = PDF.GetNextOutline(outline);
}
// changing node's text
n = PDF.GetOutlineChildCount(outline3);
for (long i = 0; i < n; i++)
{
outline = PDF.GetOutlineChild(outline3, i);
if (outline == PDF.GetOutlineFirstChild(outline3))
PDF.SetOutlineTitle(outline, "Node's first child.", ch);
else
{
if (outline == PDF.GetOutlineLastChild(outline3))
PDF.SetOutlineTitle(outline, "Node's last child.", ch);
else
PDF.SetOutlineTitle(outline, "Node's child.", ch);
}
}
if (PDF.IsOutlineExpanded(outline3))
PDF.SetOutlineExpanded(outline3, false);
PDF.SaveToFile("test.pdf", true);
Visual Basic
[copy to clipboard]
' PDF object is supposed to be created
PDF.ViewerMode = 1 'ModeType.mtUseOutlines
ch = 1 'FontCharset.fcDefault
' adding outlines
outline1 = PDF.AddOutlineChild(PDF.GetRootOutline, "Outline 1", ch)
outline3 = PDF.AddOutlineAfter(outline1, "Outline 3", ch)
outline2 = PDF.AddOutlineBefore(outline3, "Outline 2", ch)
outline4 = PDF.AddOutlineAfter(outline3, "Outline 4", ch)
if "Outline 4" = PDF.GetOutlineUnicodeTitle(outline4) then
PDF.DeleteOutline outline4, false
end if
' adding child nodes
outline = outline1
n = PDF.GetOutlineCount
for i = 1 to 3*n
PDF.AddOutlineChild outline, "Child " & i, ch
PDF.AddOutlineChild outline, "Child " & i+1, ch
PDF.AddOutlineChild outline, "Child " & i+2, ch
outline = PDF.GetNextSiblingOutline(outline)
i = i + 2
next
' assigning actions
action = PDF.CreateJavascriptAction("app.alert('Hello.')")
outline = outline1
n = PDF.GetOutlineCount
for i = 1 to n
PDF.SetOutlineAction outline, action
outline = PDF.GetNextOutline(outline)
next
' changing node's text
n = PDF.GetOutlineChildCount(outline3)
for i = 0 to n-1
outline = PDF.GetOutlineChild(outline3, i)
if outline = PDF.GetOutlineFirstChild(outline3) Then
PDF.SetOutlineTitle outline, "Node's first child.", ch
else
if outline = PDF.GetOutlineLastChild(outline3) Then
PDF.SetOutlineTitle outline, "Node's last child.", ch
else
PDF.SetOutlineTitle outline, "Node's child.", ch
end if
end if
next
if PDF.IsOutlineExpanded(outline3) Then
PDF.SetOutlineExpanded outline3, false
end if
PDF.SaveToFile "test.pdf", true
See Also
Reference


