c# save pdf : Bookmark pdf in preview Library application class asp.net windows wpf ajax AcroJSGuide18-part339

Acrobat JavaScript Scripting Guide
181
Modifying the User Interface
Adding Navigation to PDF Documents
10
Highlighting Form Fields and Navigational Components
You can use Acrobat JavaScript to customize the actions associated with buttons, links, and 
bookmarks so that they change their appearance after the user has clicked on them.
For a button, which is a field, you can invoke its 
highlight
property, which allows you to 
specify how the button appears once it has been clicked. There are four choices, as shown 
below in Table 10.12:
For example, the following code makes the button appear pushed when clicked:
// set the highlight mode to push
var f = this.getField("myButton");
f.highlight = highlight.p;
As you learned earlier, the 
link
object also has a 
highlight
property. 
There are other ways in which you can creatively address the issue of highlighting. For 
example, you can change the background color of the button when clicked, by including a 
line of code in the script passed into its 
setAction
method. In the following example, the 
button displays a greeting and changes its background color to blue when the mouse 
enters its area:
var script = "app.alert('Hello!');";
script += "var myButton = this.getField('myButton');";
script += "myButton.fillColor = color.blue;";
f.setAction("MouseEnter", script);
This idea can be applied to the 
bookMark
object’s 
color
property, as well as the 
link
object’s 
borderColor
property. In both cases, similar code to that shown in the example 
above can be used in the scripts passed into their 
setAction
methods. 
For 
bookMark
objects, you may additionally consider changing the text or font style 
through its 
name
and 
style
properties. For example, the following code adds the word 
VISITED
to 
myBookmark
and changes the font style to bold:
myBookmark.name += " - VISITED");
myBookmark.style = 2;
T
ABLE
10.12
Button Appearance
Type
Keyword
none
highlight.n
invert
highlight.i
push
highlight.p
outline
highlight.o
Bookmark pdf in preview - 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
bookmarks pdf; export pdf bookmarks
Bookmark pdf in preview - 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 bookmark a pdf file; pdf export bookmarks
Modifying the User Interface
Adding Navigation to PDF Documents
10
182
Acrobat JavaScript Scripting Guide
Setting Up a Presentation
There are two viewing modes for Acrobat and Adobe Reader: full screen mode and regular 
viewing mode. Full screen mode is often appropriate for presentations, since PDF pages 
can fill the entire screen with the menu bar, toolbar, and window controls hidden.
It is possible to use Acrobat JavaScript to customize the viewing mode when setting up 
presentations. The 
app
object’s 
fullScreen
property, as well as the 
app.media
object’s 
windowType
property may be used to set the viewing mode.
Defining the Initial View in Full Screen View
To cause Acrobat and Adobe Reader to display in full screen mode, you may include the 
following statement in a document-level script triggered when the document is opened, or 
in an application-level script triggered when the application is first started:
app.fullscreen = true;
Defining an Initial View
In addition to specifying whether the full screen or regular viewing mode will be used, you 
may also use Acrobat JavaScript to set up the document view. You can customize the initial 
view in terms of magnification, page layout, application and document viewing 
dimensions, the initial page to which the document opens, and whether parts of the user 
interface will be visible.
The 
doc
object’s 
layout
property allows you to specify page layout by assigning one of 
the following values:
SinglePage
OneColumn
TwoColumnLeft
TwoColumnRight
TwoPageLeft
TwoPageRight
To set up the dimensions of the various view windows, assign a 
rect
value to one of the 
following 
doc
object properties:
innerAppWindowRect
: the inner application window (excludes title bar, border, etc)
innerDocWindowRect
: the inner document window
outerAppWindowRect
: the outer application window
outerDocWindowRect
: the outer document window
pageWindowRect
: the page view window for the document content
To set up the magnification, assign a value to the 
doc
object’s 
zoom
property. For example, 
the following code sets up a magnification of 125%:
this.zoom = 125;
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview component enables compressing and
how to bookmark a pdf page; how to add bookmarks to a pdf
How to C#: Preview Document Content Using XDoc.Word
How to C#: Preview Document Content Using XDoc.Word. Get Preview From File. You may get document preview image from an existing Word file in C#.net.
export excel to pdf with bookmarks; pdf create bookmarks
Acrobat JavaScript Scripting Guide
183
Modifying the User Interface
Adding Navigation to PDF Documents
10
You can also set the zoom type by assigning one of the settings, shown below in 
Table 10.13, to the 
doc
object’s 
zoomtype
property:
The following example sets the zoom type of the document to fit the width:
this.zoomType = zoomtype.fitW;
To specify the page to which the document initially opens, set the 
doc
object’s 
pageNum
property. If the following code is included in the script used in the document 
Open
event, 
the document automatically opens to page 30:
this.pageNum = 30;
Finally, you may choose whether menu items and toolbar buttons will be visible by 
invoking the following methods of the 
app
object:
hideMenuItem
: removes a specific menu item
hideToolbarButton
: removes a specific toolbar button
For example, if the following code is placed in a folder-level script, the "Hand" icon is 
removed when Acrobat or Adobe Reader is started:
app.hideToolbarButton("Hand");
T
ABLE
10.13
ZoomType Settings
Zoom Type
Property Value
NoVary
zoomtype.none
FitPage
zoomtype.fitP
FitWidth
zoomtype.fitW
FitHeight
zoomtype.fitH
FitVisibleWidth
zoomtype.fitV
Preferred
zoomtype.pref
ReflowWidth
zoomtype.refW
How to C#: Preview Document Content Using XDoc.PowerPoint
How to C#: Preview Document Content Using XDoc.PowerPoint. Get Preview From File. You may get document preview image from an existing PowerPoint file in C#.net.
editing bookmarks in pdf; convert word to pdf with bookmarks
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
It makes users easy to view PDF document and edit PDF document in preview. PDF Annotation. • Add sticky notes to PDF document in preview.
create bookmark pdf; bookmarks pdf file
Modifying the User Interface
Adding Navigation to PDF Documents
10
184
Acrobat JavaScript Scripting Guide
Adding Page Transitions
You may use Acrobat JavaScript to customize how page transitions occur for any pages 
within a document. This is accomplished through the 
doc
object’s 
setPageTransitions
and 
getPageTransitions
methods.
The 
setPageTransitions
method accepts three parameters:
nStart
: the zero-based index of the beginning page
nEnd
: the zero-based index of the last page
aTrans
: a page transition array containing three values:
nDuration
: the time a page is displayed before automatically changing
cTransition
: the name of the transition to be applied
nTransDuration
: the duration in seconds of the transition effect
The name of the transition to be applied can be chosen from a comprehensive list made 
available through the 
fullscreen
object’s 
transitions
property. To obtain the list, 
type the following code into the Console:
console.println("[" + app.fs.transitions + "]");
In addition, you may set up a default page transition through the 
fullscreen
object’s 
defaultTransition
property. 
In the following example, page transitions are applied to pages 2-5. Each page displays for 
10 seconds, and then an automatic transition occurs for one second:
this.setPageTransitions({
nStart: 2,
nEnd: 5,
aTrans: {
nDuration: 10,
cTransition: "WipeLeft",
nTransDuration: 1
}
});
// Set the viewing mode to full screen
app.fullScreen = true;
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.
bookmarks in pdf from word; how to add bookmarks on pdf
VB.NET PDF insert image library: insert images into PDF in vb.net
NET. An independent .NET framework component supports inserting image to PDF in preview without adobe PDF control installed. Access
bookmark template pdf; export bookmarks from pdf to excel
Acrobat JavaScript Scripting Guide
185
Modifying the User Interface
Adding Navigation to PDF Documents
10
Numbering Pages
You may use Acrobat JavaScript to customize the page numbering schemes used 
throughout a document. There are three numbering formats: 
decimal (often used for normal page ranges) 
roman (often used for front matter such as a preface) 
alphabetic (often used for back matter such as appendices)
The 
doc
object’s 
getPageLabel
and 
setPageLabels
methods can be used to control 
and customize the appearance of numbering schemes within a PDF document. 
The 
getPageLabel
method accepts the zero-based page index and returns a string 
containing the label for a given page.
The 
setPageLabels
method accepts two parameters: 
nPage
is the zero-based index for 
the page to be labeled, and 
aLabel
is an array of three values representing the numbering 
scheme. If 
aLabel
is not supplied, the method removes page numbering for the specified 
page and any others up to the next specified label.
The 
aLabel
array contains three required values: 
cStyle
: the style of page numbering as shown below in Table 10.14
cPrefox
: the string used to prefix the numeric portion of the page label
nStart
: the ordinal with which to start numbering the pages
T
ABLE
10.14
Page Numbering Style Values
cStyle value
Description
D
Decimal numbering
R
Upper case Roman numbering
r
Lower case Roman numbering
A
Upper case alphabetic numbering
a
Lower case alphabetic numbering
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF document by PDF bookmark and outlines. Advanced component for splitting PDF document in preview without any third-party plug-ins installed.
how to create bookmark in pdf with; add bookmarks to pdf
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
create bookmark pdf file; convert excel to pdf with bookmarks
Modifying the User Interface
Adding Navigation to PDF Documents
10
186
Acrobat JavaScript Scripting Guide
For example, the code shown below labels 10 pages within a document using the following 
scheme: i, ii, ii, 1, 2, 3, 4, 5, Appendix-A, Appendix-B:
// Pages 0-2 will have lower case roman numerals i, ii, iii:
this.setPageLabels(0, ["r", "", 1]);
// Pages 3-7 will have decimal numbering 1-5:
this.setPageLabels(3, ["D", "", 1]);
// Pages 8-9 will have alphabetic numbering:
this.setPageLabels(8, ["A", "Appendix-", 1]);
// The page labels will be printed to the console:
var labels = this.getPageLabel(0);
for (var i=1; i<this.numPages; i++)
labels += ", " + this.getPageLabel(i);
console.println(labels);
It is also possible to remove a page label by omitting the 
aLabel
parameter, as shown in 
the code below (which assumes the existence of the labels in the previous example:
// The labels for pages 3-7 will be removed:
this.setPageLabels(3);
Creating Buttons
Though buttons are normally considered form fields, you can add them to any document. A 
button may be used for a variety of purposes, such as opening files, playing sound or movie 
clips, or submitting data to a web server. As you learned earlier, you can place text and 
images on a button, making it a user-friendly interactive portion of your document. To 
show or hide portions of graphic buttons, use the 
Mouse
Enter
and 
Mouse
Exit
events 
or other types of control mechanisms to manage the usage of the button field’s 
buttonSetIcon
method.
For example, the following code shows one icon when the mouse enters the button field, 
and a different icon when the mouse exits:
var script = "var f = this.getField(
'
myButton
'
);";
script += "f.buttonSetIcon(this.getIcon(
'
oneIcon
'
);";
myButton.setAction("MouseEnter",script);
script = "var f = this.getField(
'
myButton
'
);";
script += "f.buttonSetIcon(this.getIcon(
'
otherIcon
'
);";
myButton.setAction("MouseExit",script);
VB.NET PDF url edit library: insert, remove PDF links in vb.net
Link access to variety of objects, including website, image, document, bookmark, PDF page number, flash, etc. Edit PDF url in preview without adobe PDF
adding bookmarks to a pdf; copy pdf bookmarks
VB.NET PDF remove image library: remove, delete images from PDF in
pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET Remove PDF image in preview without adobe
create bookmark pdf file; how to bookmark a pdf file in acrobat
Acrobat JavaScript Scripting Guide
187
Modifying the User Interface
Working with PDF Layers
10
Working with PDF Layers
About PDF Layers
PDF layers are components of content that may occupy the same space as other 
components. Multiple components may be visible or invisible depending on their settings, 
and may be used to support the display, navigation, and printing of layered PDF content by 
various applications. It is possible to edit the properties of layers, lock layers, add navigation 
to them, merge or flatten layers, and combine PDF layered documents. PDF layers are 
supported through the usage of Acrobat JavaScript Optional Content Group (OCG) objects.
To obtain an array of the 
OCG
objects for a given page in the document, invoke the 
doc
object’s 
getOCGs
method. The following code obtains the array of OCG objects contained 
on page 3 of the document:
var ocgArray = this.getOCGs(3);
Navigating with Layers
Since information can be stored in different layers of a PDF document, navigational controls 
can be customized within different layers, whose visibility settings may be dynamically 
customized so that they are tied to context and user interaction. For example, if the user 
selects a given option, a set of navigational links belonging to a corresponding optional 
content group may be shown.
In addition, it is possible to determine the order in which layers are displayed in the user 
interface by invoking the 
doc
object’s 
getOCGOrder
and 
setOCGOrder
methods. In 
the following example, the display order of all the layers is reversed:
var ocgOrder = this.getOCGOrder();
var newOrder = new Array();
for (var i=0; i<ocgOrder.length; i++)
newOrder[i] = ocgOrder[ocgOrder.length - i - 1];
this.setOCGOrder(newOrder);
Modifying the User Interface
Working with PDF Layers
10
188
Acrobat JavaScript Scripting Guide
Editing the Properties of PDF Layers
The 
OCG
object provides properties that can be used to determine whether the object’s 
default state should be on or off, whether its intent should be for viewing or design 
purposes, whether it should be locked, the text string seen in the user interface, and the 
current state. The properties are shown below in Table 10.15:
The 
initState
property can be used to set the default state for an optional content 
group. In the following example, 
myLayer
is set to 
on
by default:
myLayer.initState = true;
The 
intent
property, which is an array of values, can be used to define the intent of a 
particular optional content group. There are two possible values used in the array: 
View
and 
Design
. A 
Design
layer is created for informational purposes only, and does not 
affect the visibility of content. Its purpose is to represent a document designer’s structural 
organization of artwork. The 
View
layer is intended for interactive use by document 
consumers. If 
View
is used, the visibility of the layer is affected. In the following example, 
the intent of all the 
OCG
objects in the document is set to both values:
var ocgs = this.getOCGs();
for (var i=0; i<ocgs.length; i++)
ocgs[i].intent = ["View", "Design"];
The 
locked
property is used to determine whether a given layer can be toggled through 
the user interface. In the following example, 
myLayer
is locked, meaning that it cannot be 
toggled through the user interface:
myLayer.locked = true;
The 
state
property represents the current on/off state for a given OCG. In the following 
example, all the OCGs are turned on:
var ocgs = this.getOCGs();
for (var i=0; i<ocgs.length; i++)
ocgs[i].state = true;
T
ABLE
10.15
OCG Properties
Property
Description
initState
Determines whether the 
OCG
object is on or off by 
default
intent
The intent of the 
OCG
object (View or Design)
locked
Whether the on/off state can be toggled through the user 
interface
name
The text string seen in the user interface for the 
OCG
object 
state
The current on/off state of the 
OCG
object
Acrobat JavaScript Scripting Guide
189
Modifying the User Interface
Working with PDF Layers
10
The 
name
property represents the text string seen in the user interface that is used to 
identify layers. In the following example, the 
Watermark
OCG is toggled:
var ocgs = this.getOCGs();
for (var i=0; i<ocgs.length; i++)
if (ocgs[i].name == "Watermark")
ocgs[i].state = !ocgs[i].state;
Merging Layers
You can use Acrobat JavaScript to merge layers in a PDF document. A merged layer (the 
source layer) will acquire the properties of the layer into which they are merged (the target 
layer). In the following example, 
sourceLayer
is merged into 
targetLayer
:
sourceLayer.initState = targetLayer.initState;
sourceLayer.intent = targetLayer.intent;
sourceLayer.locked = targetLayer.locked;
sourceLayer.name = targetLayer.name;
sourceLayer.state = targetLayer.state;
Flattening PDF Layers
Flattening layers means that they will be consolidated. This operation is done through the 
Layers tab in the user interface.
Combining PDF Layered Documents
Multiple PDF documents containing layers can be combined while preserving the layered 
information. When doing this, it may be necessary to rearrange the order of the merged 
OCG arrays. To accomplish this, obtain the OCG order arrays for each document, and merge 
them into a new array in the merged document. In the example shown below, 
source1.pdf
and 
source2.pdf
are combined into 
target.pdf
. It is assumed that there are 
no common layers between the two documents:
Modifying the User Interface
Working with PDF Layers
10
190
Acrobat JavaScript Scripting Guide
// Open the source documents:
var source1 = app.openDoc("/C/source1.pdf");
var source2 = app.openDoc("/C/source2.pdf");
// Obtain the OCG order array for each source document:
var mergedOCGArray = new Array();
var source1OCGArray = source1.getOCGOrder();
var source2OCGArray = source2.getOCGOrder();
// Merge the OCG order arrays into the target array:
for (var i=0; i<source1OCGArray.length; i++)
mergedOCGArray[i] = source1OCGArray[i];
var offset = source1OCGArray.length;
for (var j=0; j<source2OCGArray.length; j++)
mergedOCGArray[offset + j] = source2OCGArray[j];
// Create the target document:
var target = app.newDoc("/C/target.pdf");
// Insert source1.pdf:
target.insertPages({
nPage : -1,
cPath : "/c/source1.pdf",
});
// Insert source2.pdf:
target.insertPages({
nPage : target.numPages,
cPath : "/c/source2.pdf",
});
// Set the OCG order array in the target document
target.setOCGOrder(mergedOCGArray);
// Save the target document:
target.saveAs({
"/c/target.pdf");
});
// Close the target document without notifying the user:
target.closeDoc(true);
Documents you may be interested
Documents you may be interested