c# save pdf : Auto bookmark pdf control SDK system azure wpf windows console AcroJSGuide17-part338

Acrobat JavaScript Scripting Guide
171
Modifying the User Interface
Adding Navigation to PDF Documents
10
Thumbnails
Creating Page Thumbnails
The 
doc
object provides methods for adding and removing thumbnails in a document. To 
add a set of thumbnails, invoke the 
dialog
object’s 
addThumbnails
method, which 
creates thumbnails for a specified set of pages in the document. It accepts two optional 
parameters: 
nStart
and 
nEnd
represent the beginning and end of an inclusive range of 
page numbers. 
For example, to add thumbnails for pages 2 through 5, use the following command:
this.addThumbnails({nStart: 2, nEnd: 5});
To add a thumbnail for just one page, just provide a value for 
nStart
. The following 
example adds a thumbnail for page 7:
this.addThumbnails({nStart: 7});
To add thumbnails from page 0 to a specified page, just provide a value for 
nEnd
. The 
following example adds thumbnails for pages 0-7:
this.addThumbnails({nEnd: 7});
To add thumbnails for all the pages in the document, omit both parameters:
this.addThumbnails();
To remove a set of thumbnails, invoke the 
doc
object’s 
removeThumbnails
method, 
which accepts the same parameters as the 
addThumbnails
method. For example, to 
remove pages 2 to 5, use the following code:
this.removeThumbnails({nStart: 2, nEnd: 5});
Adding Page Actions with Page Thumbnails
You may associate a 
Page
Open
event with a page thumbnail. The most straightforward 
way of doing this is to specify a Page Open action in the Page Properties dialog. 
To customize a page action with Acrobat JavaScript, invoke the 
doc
object’s 
setPageAction
method for the page to be opened. In the following example, a greeting 
is displayed when the user clicks on the thumbnail for page 2:
this.setPageAction(2, "Open", "app.alert(‘Hello’);");
The advantage of this approach is that you can dynamically build JavaScript strings to be 
used in the method call.
Bookmarks
You can use Acrobat JavaScript to customize the appearance and behavior of the 
bookmarks that appear in the Bookmarks navigation panel. Every PDF document has an 
object known as 
bookmarkRoot
, which is the root of the bookmark tree for the 
document. It is possible to recursively add and modify levels of bookmarks underneath the 
root. Each node is a 
bookmark
object which can have any number of children.
Auto bookmark pdf - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
copy bookmarks from one pdf to another; bookmark pdf reader
Auto bookmark pdf - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to create bookmark in pdf automatically; bookmarks in pdf reader
Modifying the User Interface
Adding Navigation to PDF Documents
10
172
Acrobat JavaScript Scripting Guide
Acrobat JavaScript makes the 
bookmarkRoot
object available as a property of the 
doc
object. This root node contains a property called 
children
, which is an array of 
bookmark
objects. The 
bookmark
object has the properties shown below in Table 10.6
and the methods shown below in Table 10.7:
Creating Bookmarks
To create a bookmark, it is necessary to navigate through the bookmark tree and identify 
the parent of the new node. Begin by accessing the 
bookmarkRoot
, which is a property 
of the current document representing the top node in the bookmark tree:
var myRoot = this.bookmarkRoot;
Assume there are no bookmarks in the document. To create a new bookmark, invoke the 
bookmarkRoot
object’s 
createChild
method to which you may submit the following 
parameters: 
cName
(the name to appear in the navigational panel), 
cExpr
(an optional 
JavaScript to be executed when the bookmark is clicked), and 
nIndex
(an optional zero-
based index into the 
children
array).
T
ABLE
10.6
Bookmark Properties
Property
Description
children
Returns the array of child objects for the current node
color
Specifies the color for the bookmark
doc
The document object for the bookmark
name
The text string appearing in the navigational panel
open
Determines if children are shown
parent
The parent bookmark
style
Font style
T
ABLE
10.7
Bookmark Methods
Method
Description
createChild
Creates a new child bookmark
execute
Executes the 
Mouse
Up
action for the bookmark
insertChild
Inserts a bookmark as a new child for this bookmark (this 
may be used to move existing bookmarks)
remove
Removes the bookmark and all its children
setAction
Sets a 
Mouse
Up
action for the bookmark
VB.NET PDF Form Data fill-in library: auto fill-in PDF form data
to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Data: Read, Extract Field Data. Data: Auto Fill-in
copy pdf bookmarks to another pdf; create bookmarks pdf
C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
|. Home ›› XDoc.PDF ›› C# PDF: Auto Fill-in Field Data. C#.NET Demo Code: Auto Fill-in Field Data to PDF in C#.NET. Add necessary references:
pdf reader with bookmarks; how to bookmark a pdf document
Acrobat JavaScript Scripting Guide
173
Modifying the User Interface
Adding Navigation to PDF Documents
10
The following code creates a bookmark that displays a greeting when clicked. Note that the 
omission of the 
nIndex
value means that it is placed at position 0 in the 
children
array:
myRoot.createChild("myBookmark", "app.alert(‘Hello!’);");
The following code adds a bookmark called 
grandChild
as a child of 
myBookmark
, :
var current = myRoot.children[0];
current.createChild("grandChild");
Suppose that you would like to move 
grandChild
so that it becomes a child of the root. 
Invoke the root bookmark’s 
insertChild
method, and provide a reference to 
grandChild
as a parameter:
var grandChild = myRoot.children[0].children[0];
myRoot.insertChild(grandChild, 1);
Managing Bookmarks
You can use Acrobat JavaScript to change the 
name
color
, and 
style
properties of a 
bookmark. Note that the 
style
property is an integer: 0 means normal, 1 means italic, 2 
means bold, and 3 means bold-italic. The code below changes the name to 
New
Name
, the 
color to red, and the font style to bold:
var myRoot = this.bookmarkRoot;
var myChild = myRoot.children[0];
myChild.name = "New Name";
myChild.color = color.red;
myChild.style = 2;
In addition to adding new or existing bookmarks as you learned in Creating Bookmarks
you may also delete a bookmark and its children by invoking its 
remove
method. The 
following line of code removes all bookmarks from the document:
this.bookmarkRoot.remove();
Creating a Bookmark Hierarchy
Because of the tree structure associated with bookmarks, it is possible to construct a 
hierarchy of bookmarks; a child of a bookmark represents a subsection of the section 
represented by that bookmark. To create a hierarchy, first add bookmarks to the root, then 
to the children of the root, and recursively to their children.
The following code creates bookmarks 
A
B
C
. Each section has 3 children. Child 
A
has 
children 
A0
A1
, and 
A2
. Child 
B
has children 
B0
B1
, and 
B2
. Child 
C
has children 
C0
C1
and 
C2
:
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Data: Read, Extract Field Data. Data: Auto Fill-in
creating bookmarks pdf files; how to bookmark a pdf in reader
C# PDF Library SDK to view, edit, convert, process PDF file for C#
RasterEdge PDF SDK for .NET package offers robust APIs for editing PDF document hyperlink (url) and quick navigation link in PDF bookmark.
add bookmarks to pdf file; export pdf bookmarks to excel
Modifying the User Interface
Adding Navigation to PDF Documents
10
174
Acrobat JavaScript Scripting Guide
var myRoot = this.bookmarkRoot;
myRoot.createChild("A");
myRoot.createChild({cName: "B", nIndex: 1});
myRoot.createChild({cName: "C", nIndex: 2});
for (var i = 0; i < myRoot.children.length; i++) {
var child = myRoot.children[i];
for (var j = 0; j < 3; j++) {
var name = child.name + j;
child.createChild({cName: name, nIndex: j});
}
}
To print out the hierarchy to the console, you can keep track of levels as shown in the 
following code. Note its recursive nature:
function DumpBookmark(bm, nLevel)
{
// build indents to illustrate the level
var s = "";
for (var i = 0; i < nLevel; i++) s += " ";
// print out the bookmark’s name:
console.println(s + "+-" + bm.name);
// recursively print out the bookmark’s children:
if (bm.children != null)
for (var i = 0; i < bm.children.length; i++)
DumpBookmark(bm.children[i], nLevel+1);
}
// open the console to begin:
console.clear(); console.show();
// recursively print out the bookmark tree
DumpBookmark(this.bookmarkRoot, 0);
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF document by PDF bookmark and outlines in VB.NET. Independent component for splitting PDF document in preview without using external PDF control.
create pdf bookmarks; split pdf by bookmark
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
create bookmark in pdf automatically; create bookmarks in pdf
Acrobat JavaScript Scripting Guide
175
Modifying the User Interface
Adding Navigation to PDF Documents
10
Links
Acrobat JavaScript provides support for the addition, customization, or removal of links 
within PDF documents. These links may be used to access URLs, file attachments, or 
destinations within the document.
The 
doc
object contains methods for adding, retrieving, and removing links. These include 
the methods listed below in Table 10.8. This is used in conjunction with the 
link
object, 
which contains properties as well as a 
setAction
method for customizing the 
appearance and behavior of a given link. Its properties are listed below in Table 10.9.
In addition, the 
app
object contains a property called 
openInPlace
, which can be used 
to specify whether cross-document links are opened in the same window or in a new one.
T
ABLE
10.8
Doc Object Link Methods
Method
Description
addLink
Adds a new link to a page
addWeblinks
Converts text instances to Web links with URL actions
getLinks
Retrieves the links within a specified area on a page
getURL
Opens a web page
gotoNamedDest
Goes to a named destination within the document
removeLinks
Removes the links within a specifed area on a page
removeWeblinks
Removes Web links created with the Acrobat user 
interface
T
ABLE
10.9
Link Properties
Property
Description
borderColor
The border color of the bounding rectangle
borderWidth
The border width of the surrounding rectangle
highlightMode
The visual effect when the user clicks the link
rect
The rotated user space coordinates of the link
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Able to get word count in PDF pages. Change Word hyperlink to PDF hyperlink and bookmark. Free online Word to PDF converter without email.
create pdf bookmarks from word; excel pdf bookmarks
How to C#: Basic SDK Concept of XDoc.PDF for .NET
XDoc.PDF for .NET allows C# developers to edit hyperlink of PDF document, including editing PDF url links and quick navigation link in bookmark/outline.
bookmarks in pdf; add bookmarks to pdf preview
Modifying the User Interface
Adding Navigation to PDF Documents
10
176
Acrobat JavaScript Scripting Guide
Creating Links
If a PDF document contains text beginning with http:// such as http://myURL.com, you 
may convert all such instances to links with URL actions by invoking the 
doc
object’s 
addWeblinks
method. The method returns an integer representing the number of text 
instances converted, as shown in the code below:
var numberOfLinks = this.addWeblinks();
console.println("Converted " + numberOfLinks + " links.");
To add a single link to a PDF document, first invoke the 
doc
object’s 
addLink
method, 
and then customize the returned 
link
object’s properties. The 
addLink
method requires 
two parameters: the page number and the coordinates, in rotated user space, of the 
bounding rectangle. In the following example, navigational links are added to the lower left 
and right corners of each page in the document. The left link opens the previous page, and 
the right link opens the next page:
var linkWidth = 36, linkHeight = 18;
for (var i = 0; i < this.numPages; i++)
{
// Create the coordinates for the left link:
var lRect = [0, linkHeight, linkWidth, 0];
// Create the coordinates for the right link:
var cropBox = this.getPageBox("Crop", i);
var offset = cropBox[2] - cropBox[0] - linkWidth;
var rRect = [offset, linkHeight, linkWidth + offset, 0];
// Create the Link objects:
var leftLink = this.addLink(i, lRect);
var rightLink = this.addLink(i, rRect);
// Calculate the previous and next page numbers:
var nextPage = (i + 1) % this.numPages;
var prevPage = i - 1;
if (prevPage < 0) prevPage = this.numPages - 1;
// Set the link actions to go to the pages:
leftLink.setAction("this.pageNum = " + prevPage);
rightLink.setAction("this.pageNum = " + nextPage);
// Customize the link appearance:
leftLink.borderColor = color.red;
leftLink.borderWidth = 1;
rightLink.borderColor = color.red;
rightLink.borderWidth = 1;
}
Acrobat JavaScript Scripting Guide
177
Modifying the User Interface
Adding Navigation to PDF Documents
10
Defining the Appearance of a Link
The previous example contained code that set the appearance of the bounding rectangle 
for the links through their 
borderColor
and 
borderWidth
properties. You may also 
specify how the link will appear when it is clicked by setting its 
highlightMode
property 
to one of four values: 
None
Outline
Invert
(the default), or 
Push
.
For example, the following code sets the border color to blue, the border thickness to 2, 
and the highlight mode to 
Outline
for 
myLink
:
myLink.borderColor = color.blue;
myLink.borderWidth = 2;
myLink.highlightMode = "Outline";
Editing Links
In addition to adding links and modifying their appearance, you may also remove links 
from a document. To remove a known link object from a given page, retrieve its bounding 
rectangle coordinates and invoke the 
doc
object’s 
removeLinks
method. In the 
following example, 
myLink
is removed from page 2 of the document:
var linkRect = myLink.rect;
this.removeLinks(2, linkRect);
To remove all links from the document, simply use the crop box for each page, as shown in 
the code below:
for (var page = 0; page < this.numPages; page++)
{
var box = this.getPageBox("Crop", page);
this.removeLinks(page, box);
}
Creating Links from URLs
To open a web page for a given link, invoke the 
link
object’s 
setAction
method, and 
pass in a script containing a call to the 
doc
object’s 
getURL
method. 
For example, suppose you have created a 
link
object named 
myLink
. The following 
code opens http://myWebPage.com:
myLink.setAction("this.getURL(
'
http://myWebPage.com
'
)");
Linking to File Attachments
To open a file attachment, embed a JavaScript in the call to the 
link
object’s 
setAction
method. The script contains a call to the 
app
object’s 
openDoc
method.
The following example opens 
myDoc.pdf
when 
myLink
is clicked:
myLink.setAction("app.openDoc('/C/myDoc.pdf');");
Modifying the User Interface
Adding Navigation to PDF Documents
10
178
Acrobat JavaScript Scripting Guide
Removing Web Links
To remove Web links that were authored in Acrobat, invoke the 
doc
object’s 
removeWeblinks
method. It accepts two optional parameters: 
nStart
and 
nEnd
represent the beginning and end of an inclusive range of page numbers. The following 
examples illustrate how to remove Web links from different page ranges in the document:
// remove the Web links from pages 2 through 5:
this.removeWeblinks({nStart: 2, nEnd: 5});
// remove the Web links from page 7
this.removeWeblinks({nStart: 7});
// remove the Web links from pages 0 through 7:
this.removeWeblinks({nEnd: 7});
// remove all the Web links in the document:
this.removeWeblinks();
Using Destinations
To go to a named destination within a document, embed a JavaScript in the call to the 
link
object’s 
setAction
method. The script contains a call to the 
doc
object’s 
gotoNamedDest
method.
The following example goes to the destination named as 
Chapter5
in the current 
document when 
myLink
is clicked:
myLink.setAction("this.gotoNamedDest('Chapter5');");
Using Actions for Special Effects
Thumbnails, bookmarks, links, and other objects have actions associated with them, and 
you may use Acrobat JavaScript to customize their behavior. For example, you can use 
them to display messages, jump to destinations in the same document or any other, open 
attachments, open Web pages, execute menu commands, or perform a variety of other 
tasks.
Adding Actions
As you learned earlier, you may associate a thumbnail with a 
Page
Open
event, and 
associate bookmarks and links with 
Mouse
Up
events.
You may use Acrobat JavaScript to customize the actions associated with a thumbnail by 
invoking the 
doc
object’s 
setPageAction
method. To customize the actions associated 
with bookmarks and links, create a string containing Acrobat JavaScript code and pass it to 
the object’s 
setAction
method. In the examples shown below, a greeting is displayed 
when a thumbnail, bookmark, and link are clicked:
Acrobat JavaScript Scripting Guide
179
Modifying the User Interface
Adding Navigation to PDF Documents
10
// Open action for thumbnail:
this.setPageAction(2, "Open", "app.alert('Hello!');");
// MouseUp actions for bookmark and link:
myBookmark.setAction("app.alert('Hello!');");
myLink.setAction("app.alert('Hello!');");
Action Types
The actions applied to navigational components represent a small portion of the possible 
events that may be customized. A complete list of event types and the actions with which 
they are associated is shown below in Table 10.10:
T
ABLE
10.10
Action Types and Associated Events
Action Type
Event Names
App
Init
Batch
Exec
Bookmark
Mouse
Up
Console
Exec
Doc
DidPrint
DidSave
Open
WillClose
WillPrint
WillSave
External
Exec
Field
Blur
Calculate
Focus
Format
Keystroke
Mouse
Down
Mouse
Enter
Mouse
Exit
Mouse
Up
Validate
Link
Mouse
Up
Menu
Exec
Page
Open
Close
Screen
InView
OutView
Open
Close
Focus
Blur
Mouse
Up
Mouse
Down
Mouse
Enter
Mouse
Exit
Modifying the User Interface
Adding Navigation to PDF Documents
10
180
Acrobat JavaScript Scripting Guide
Type of Triggers
The event names shown above in Table 10.10 represent the types of triggers that initiate 
the actions associated with events. They are described below in Table 10.11.
T
ABLE
10.11
Trigger Descriptions
Trigger
Description
Init
Acrobat or Adobe Reader starts
Exec
Batch sequence starts
DidPrint
After document has printed
DidSave
After document has saved
Open
When the document is opened
Close
New page is opened or document is closed
WillClose
Just before the document is closed
WillPrint
Just before the document is printed
WillSave
Just before the document is saved
Blur
Just as the field loses focus
Calculate
A calculation is required for a field
Focus
After 
Mouse
Down
and before 
Mouse
Up
Format
After dependent 
Calculate
events occurs
Keystroke
Keystroke in textbox or combobox, or item is selected in 
combobox or listbox
Mouse
Down
Mouse button is down
Mouse
Up
Mouse button has been released
Mouse
Enter
Mouse enters a field or screen rectangle
Mouse
Exit
Mouse exits a field or screen rectangle
Validate
After value has been committed to a field
InView
New page comes into view
OutView
Old page leaves view
Documents you may be interested
Documents you may be interested