Adobe Acrobat Adobe LiveCycle Designer
Converting Acrobat Forms Containing JavaScript
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Converting an Acrobat form     11
enough and skilled resources are available, the best choice may be to re-architect your forms to take full 
advantage of LiveCycle Designer, and thus improve the forms beyond what was done using Acrobat.
It may be significant to consider the type of skills required to implement each type of form logic. The kind 
of skills needed to implement each type are listed below, ranging from the highest skill level down to the 
lowest.
Converting an Acrobat form
Acrobat forms are converted to LiveCycle Designer forms by using LiveCycle Designer to import the PDF 
form file. The process is explained in detail in the LiveCycle Designer Help topic Importing Forms from Other 
Applications > Importing PDF Files.
When a form is imported into LiveCycle Designer, the Acrobat JavaScript is placed in the resulting XML file 
without conversion, and the code is set so it will not execute (using an intentionally-invalid function call 
comments() at the beginning of all Acrobat JavaScripts). You must decide whether to use the Acrobat 
JavaScript as it is (after adapting it for the LiveCycle Designer form), or select one of the other conversion 
options shown in 
JavaScript conversion options
” on page 8
.
To import an Acrobat form into LiveCycle Designer:
1. Use LiveCycle Designer to import the Acrobat form by choosing File > Open and selecting the PDF form 
file.
2. The New Form Assistant dialog will come up and prompt you for information about Import Options 
(preserving editability vs. appearance), and the Return Method (how it will be distributed and how the 
form will be returned). 
3. Resolve all issues about missing fonts, text object merging, etc. See LiveCycle Designer Help topic 
Importing Forms From Other Applications.)
4. Convert field names as appropriate to suit your scripts and the LiveCycle Designer field naming 
convention.
5. Convert or adapt all scripting according to the options you have chosen; for information see the 
following references.
Designer implementation 
type
Required skills 
LIveCycle Designer JavaScript
Programming ability required; easier than C language programming.
Acrobat JavaScript
Some programming skills required. Similar to LiveCycle Designer 
JavaScript; the Acrobat JavaScript may be slightly easier to learn.
FormCalc scripting
Simple calculation scripting language; Some tasks can be done 
simply, but other tasks may require some programming skills.
LiveCycle Designer UI form logic Programming skills not required. Easy to create and maintain.
How to create bookmarks in pdf file - 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
how to bookmark a pdf file; copy pdf bookmarks to another pdf
How to create bookmarks in pdf file - 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
add bookmarks to pdf; create bookmarks in pdf reader
Adobe Acrobat Adobe LiveCycle Designer
Converting Acrobat Forms Containing JavaScript
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Testing and debugging     12
Note:Remember that when you have converted to a LiveCycle Designer form, the result is an XML text 
file. That means that you can use tools like XML parsers or Style Sheets (XSLT) to perform bulk 
transformations on the converted forms using a search-and-replace type of operation.
Testing and debugging
You can use the Acrobat JavaScript Debugger to test your converted scripts; it will work for both Acrobat 
and LiveCycle Designer JavaScript.
If you set up the Debugger in LiveCycle Designer, you will get error messages in the Debugger window, 
and you can embed code to print to the console, but you cannot set breakpoints, step through code, or 
examine variables like you can if you test the scripting using Acrobat.
To enable the Acrobat JavaScript Debugger, select Edit > Preferences, and then choose JavaScript from the 
Categories pane on the left. In the resulting display, check at least the following checkboxes:
Enable Acrobat JavaScript
Enable JavaScript Debugger after Acrobat is restarted
Store breakpoints in PDF file
Enable interactive console
Show console on errors and messages
Use Acrobat JavaScript Editor
Note:If you are using the Acrobat JavaScript Debugger in LiveCycle Designer, and need to use it in 
Acrobat to test and debug scripts, you first need to close the Debugger window in LiveCycle 
Designer. 
If you are using the JavaScript Debugger in Acrobat, and need to use it in LiveCycle Designer, you 
need to both close Acrobat Professional and stop the Acrobat.exe process in the Windows Task 
Manager. See the Adobe XML Form Object Model 2.2 Reference.
For information on how to use the Acrobat JavaScript Debugger, see the Acrobat JavaScript Scripting Guide. 
Type of form logic 
Useful reference
Acrobat JavaScript
For Acrobat JavaScript that you hope to use in LiveCycle Designer, see: 
Using Acrobat JavaScript in a LiveCycle Designer Form
” on page 14
Acrobat JavaScript Conversion Table
” on page 19
LiveCycle Designer 
JavaScript
Adobe XML Form Object Model Reference Version 2.2
LiveCycle Designer Help topic: Creating Calculations and Scripts 
FormCalc scripting
LiveCycle Designer Help topics: 
Creating Calculations and Scripts 
FormCalc User Reference 
LiveCycle Designer UI 
form logic
LiveCycle Designer Help topic: 
Defining Object Properties 
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. below is mainly to optimize PDF file with multiple String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
convert word to pdf with bookmarks; bookmarks in pdf reader
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
creating bookmarks pdf files; excel pdf bookmarks
Adobe Acrobat Adobe LiveCycle Designer
Converting Acrobat Forms Containing JavaScript
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Application version issues     13
Application version issues
When developing and testing LiveCycle Designer forms, remember that if your users have older versions of 
Adobe Reader or Acrobat, they may experience problems:
Users must be using Acrobat 6.0.2 (PDF language version 1.5) or higher. If not, LiveCycle Designer forms 
will not be recognized, and none of the LiveCycle Designer scripting will work. The user will receive a 
warning message if they don’t have the minimum version.
If version 6.0.2 is being used, the Adobe Interactive Forms Update SP1 plug-in must be installed 
(available from http://www.adobe.com/support/downloads
/).
Acrobat 7.0.5 will relax the restrictions on using Acrobat JavaScript to change form content or 
structure. However, even if you can change, for example, a form’s appearance using Acrobat JavaScript, 
it is not recommended. It still will only change the PDF representation of the form, and the changes will 
not persist when a form is saved and reopened, or when a dynamic form is regenerated.
Performance issues
While scripting is generally a very efficient way to add business logic to a form, extensive use of scripting 
can lead to performance issues. If you do experience performance problems, experiment with some of the 
following options:
If a form needs to do heavy-duty database look-ups or intensive validation processing, try doing those 
operations on the server.
If a large amount of calculations need to be performed, consider using FormCalc scripting, which 
executes more efficiently than JavaScript. (However, FormCalc cannot be used with forms which will be 
rendered in HTML using LiveCycle Forms.)
Use LiveCycle Designer UI form logic when possible. This may not have a significant effect on 
performance, but it has the advantage of making the business logic easier to maintain in the sense that 
small future changes may not require a skilled specialist.
VB.NET PDF File Split Library: Split, seperate PDF into multiple
how to split a PDF file into multiple ones by PDF bookmarks or outlines. value for each index: 1 to (Page Count - 1). ' Create output PDF file path list
create bookmark pdf file; bookmark a pdf file
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. below is mainly to optimize PDF file with multiple String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
export bookmarks from pdf to excel; creating bookmarks in pdf documents
14
2
Using Acrobat JavaScript in LiveCycle Designer 
Forms
This chapter explains why the Acrobat object model is restricted, and what you need to do to prepare 
Acrobat JavaScript for use in an XML form.
Using Acrobat JavaScript in a LiveCycle Designer Form
A large amount of Acrobat JavaScript can be used in a LiveCycle Designer form, as long as it doesn’t try to 
change the content or structure of the form. See 
Acrobat JavaScript not supported in LiveCycle Designer 
forms
” on page 17
for a quick overview of the types of Acrobat JavaScript expressions which should not be 
used in a LiveCycle Designer form.
Acrobat JavaScript allows you to handle a variety of tasks beyond the basic form description and contents. 
For example, some of the functions you can perform using Acrobat JavaScript in a LiveCycle Designer form 
include:
Adding annotations to a PDF document
Utilizing Acrobat’s search facility
Adding attachments to a PDF document
Creating PDF-based reports with the Acrobat Report object
Utilizing Acrobat’s rich multimedia support
Creating bookmarks or other navigational aids
Accessing or updating document metadata
Supporting collaboration, review, and markup with the Collab object
Understanding the Acrobat and LiveCycle Designer form object models
To better understand what you can do with Acrobat JavaScript in a LiveCycle Designer form, it is important 
to understand that the PDF component of the LiveCycle Designer form is used only for the presentation of 
the form, while the structure and content are specified using the LiveCycle Designer form object model. 
The following illustration shows the contents of a LiveCycle Designer form packaged in a PDF file.
C# Create PDF Library SDK to convert PDF from other file formats
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
bookmarks pdf; how to bookmark a pdf in reader
VB.NET Create PDF Library SDK to convert PDF from other file
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
export pdf bookmarks to text; create pdf bookmarks from word
Adobe Acrobat Adobe LiveCycle Designer
Using Acrobat JavaScript in LiveCycle Designer Forms
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Enabling the converted Acrobat JavaScript     15
When a LiveCycle Designer form is saved in LiveCycle Designer as a PDF file, LiveCycle Designer creates a 
PDF wrapper for the form which contains the components shown in the illustration above. One of the 
components is a PDF representation of the LiveCycle Designer form, which is used solely for presentation 
purposes (that is, to display and print the form).
If you use Acrobat JavaScript to change the contents or appearance of the form, you would only be 
changing the PDF representation, not the actual form itself, which is specified by the XML data. 
Hence, you should not use the Acrobat form object model to change the appearance or content of the 
form. For the same reason, you should try to convert as much Acrobat JavaScript as possible to LiveCycle 
Designer form logic or scripting.
Note:In Acrobat/LiveCycle Designer 7.0, you are not allowed to use Acrobat JavaScript to change the 
LiveCycle Designer  form. In Acrobat/LiveCycle Designer 7.0.5, that restriction will be relaxed, but 
you still should not attempt such operations.
Enabling the converted Acrobat JavaScript
When LiveCycle Designer converts an Acrobat form, all Acrobat JavaScript is placed in the resulting form, 
but it is disabled. LiveCycle Designer places an invalid function call, comment() at the beginning of the 
script. To make the code usable for testing, simply remove the comment() function call from the 
beginning of each script.
Accessing the Acrobat form object model
Most objects from the Acrobat JavaScript Object can be accessed directly as you would use them in Adobe 
Acrobat, with the one exception being the Doc object, as explained below. 
For example, associating the following JavaScript code with the click event of a form button will initiate a 
search in the form for the word “oranges” using Acrobat’s search object:
var mySearch = search;
mySearch.query("oranges");
datasets
Content
XFA
data
template
Other
XFA-related
packages
PDF
rendering
of XFA form
XML form
data
PDF
.NET PDF SDK - Description of All PDF Processing Control Feastures
page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail Create PDF from Jpeg images; Create PDF from CSV. to Jpeg images; More about PDF Conversion
add bookmark pdf; how to bookmark a pdf page
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
by C#.NET PDF to HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and font style that are included in target PDF document file.
creating bookmarks pdf; add bookmarks to pdf reader
Adobe Acrobat Adobe LiveCycle Designer
Using Acrobat JavaScript in LiveCycle Designer Forms
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Using the Acrobat Doc object     16
Using the Acrobat Doc object
If you need to use the Acrobat Doc object in a LiveCycle Designer form, you must adapt your code to use 
the following technique of assigning a variable to the target of, for example, a click event, to access the 
current document:
var myDoc = event.target;
myDoc.importDataObject("pdfAttachment");
This is necessary because the Doc object is typically referenced in an Acrobat form using “this”, as in 
this.getAnnots()” to refer to the current document. But in LiveCycle Designer JavaScript, “this” 
refers to the current XML form object, not the current document. Hence the above convention is used.
Once the Doc object has been accessed, most of its methods and properties can be used in the usual 
way, as in the above example where the user is prompted to add an attachment to the PDF file.
Note:When testing Acrobat JavaScript in LiveCycle Designer, it’s possible that you will not be able to view 
the results of some scripts when viewing in the PDF Preview tab window. For example, if you have a 
button whose attached script contains app.execMenuItem("Open"), it will not work in 
LiveCycle Designer’s PDF Preview window, but will work if tested in Acrobat.
Note:If you are having trouble accessing the JavaScript console in Acrobat after using it in LiveCycle 
Designer, switch back to LiveCycle Designer and close the console window in that application; then 
the console can be accessed in Acrobat.
Referencing LiveCycle Designer JavaScript objects
If you use Acrobat JavaScript to address a LiveCycle Designer form field object, you must use the 
fully-qualified reference to that object, including the occurrence numbers (bracketed numbers following 
the object name). For example, if you have a text field in an Acrobat form named “TextField1”, you 
reference it by using:
var f1 = this.getField("TextField1");
In a LiveCycle Designer form, it is necessary to use the fully qualified reference including the occurrence 
numbers. So, the equivalent code for a LiveCycle Designer form would look like:
var myDoc = event.target;
var f1 = myDoc.getField("form1[0].mySubForm[0].TextField1[0]")
To get the required form of the reference, you can use the following procedure where you export the form 
data from Acrobat as a CSV (Comma -delimited Spreadsheet file) file, which will provide you with the 
fully-qualified paths with the occurrence numbers, for each field in the form:
1. In Acrobat, choose: File > Create Spreadsheet from Data Files...
2. Click on the Add Files button and navigate to, and select the PDF file.
3. Click the Export button, and in the resulting dialog window, edit the suggested file name if necessary, 
and click the Save button.
4. A dialog window will pop-up with a button labeled “View File Now”; and click that button. 
5. The resulting spreadsheet file (for example, report.csv), will show the fully qualified path with the 
occurrence numbers for all fields in the form.
Adobe Acrobat Adobe LiveCycle Designer
Using Acrobat JavaScript in LiveCycle Designer Forms
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Acrobat JavaScript not supported in LiveCycle Designer forms     17
There are two additional ways to get fully qualified references. In the first, you will see the occurrence 
numbers, but you will not be able to copy and paste them: 
In Acrobat: you can get the fully qualified reference for a Designer form object by opening the form’s 
PDF file using Acrobat (rather than LiveCycle Designer), and choosing View > Navigation Tabs > Fields. If 
you then select the Fields tab in the resulting window, and expand the field icon for the current 
document, you will see the full reference including the occurrence numbers (but you will not be able to 
copy and paste them from that window).
In the second, you will see the fully qualified references, but you will not see the occurrence numbers:
In Designer: You can also get the fully qualified reference (but without the occurrence numbers) in 
Designer by putting your cursor in the Script Editor and while holding down the ctrl key move your 
mouse to the desired object. The cursor will change to a “v” symbol icon. Then click on the chosen field. 
The absolute reference for that object is put into the Script Editor wrapped in an xfa.resolveNode 
statement. Remove the xfa.resolveNode to get the required reference.
Remember, that just because you can reference LiveCycle Designer fields using Acrobat JavaScript, doesn’t 
mean that you can should use that method to change field values or other properties. However, you can 
use, for example, the field.rect property to get the coordinates of the bounding box of a field object 
using the following code (for this example, the result is displayed in the JavaScript Console):
var myDoc = event.target;
var f1 = myDoc.getField("form1[0].mySubForm[0].TextField1[0]")
console.println(f1.rect);
Acrobat JavaScript not supported in LiveCycle Designer forms
You should not try to use Acrobat JavaScript in LiveCycle Designer forms to change field or page contents. 
The table below lists a number of Acrobat JavaScript methods and properties that are not supported in 
LiveCycle Designer forms. 
The table below is not a comprehensive list, but you should be able to tell from the property and method 
names that expressions that try to change page or field contents are not supported. For a more complete 
list of Acrobat methods and properties which can be used in a LiveCycle Designer 7.0 form, see Appendix 
Acrobat JavaScript Conversion Table
” on page 19
.
app.newFDF
doc.getNthTemplate()
doc.spawnPageFromTemplate()
doc.templates
doc.gotoNamedDest()
doc.setPageRotation()
doc.addField()
doc.insertPages()
doc.setPageTabOrder() 
doc.addLink()
doc.mailForm()
doc.templates
doc.addThumbnails()
doc.movePage()
field.comb
doc.calculate 
doc.movePage()
field.deleteItemAt()
doc.createTemplate()
doc.removeField()
field.clearItems()
doc.deletePages()
doc.removeTemplate()
field.insertItemAt()
doc.extractPages()
doc.replacePages()
field.value
doc.getLinks()
doc.setAction()
Adobe Acrobat Adobe LiveCycle Designer
Using Acrobat JavaScript in LiveCycle Designer Forms
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
Acrobat document and folder-level scripts     18
Acrobat document and folder-level scripts
Acrobat document-level scripts are converted by LiveCycle Designer into LiveCycle Designer script object
s. 
Like other Acrobat JavaScripts, they will be disabled in the converted form, so they must be checked to 
make sure that they will work in a LiveCycle Designer form environment; remove the comments() 
function call, and carefully test the code.
Acrobat folder-level scripts will also work with LiveCycle Designer forms in a PDF file, but you must check 
to make sure they are appropriate for use with LiveCycle Designer as with standard Acrobat JavaScript (see 
Appendix A: 
Acrobat JavaScript Conversion Table
” on page 19
).
Testing Acrobat JavaScript in LiveCycle Designer
When you import an Acrobat form into LiveCycle Designer, all Acrobat JavaScript will be disabled by the 
(intentionally invalid) comments() function call. To use the JavaScript, first make sure that the Acrobat 
expressions are supported in LiveCycle Designer (see Appendix A: 
Acrobat JavaScript Conversion Table
” 
on page 19
). If they are, then you must remove the comment() code and test the code. See also 
Testing 
and debugging
” on page 12
.
Troubleshooting
If you’re having trouble getting Acrobat JavaScript expressions to work in a LiveCycle Designer form 
(beyond the special treatment for the Doc object), check the following:
Check if the Acrobat JavaScript expression is allowed in LiveCycle Designer forms; see Appendix A: 
Acrobat JavaScript Conversion Table
” on page 19
for more details.
Check version compatibility issues: Acrobat JavaScript that attempted to change the content or 
structure of a form — worked in version 6.X, was not allowed in 7.0; but may be allowed again in 7.0.5. 
However, just because those operations are allowed does not mean that they are recommended; see 
Understanding the Acrobat and LiveCycle Designer form object models
” on page 14
.
Check field object references to make sure the scope is correct. (Fully qualified names for references 
outside of the current container, etc.)
Check security restrictions in the Acrobat JavaScript Reference; some Acrobat objects can only execute 
in batch mode, as folder-level JavaScript, or from the Acrobat JavaScript console.
Check to make sure that all references to LiveCycle Designer field object names are fully qualified 
references, including the occurrence numbers.
If you have a JavaScript that seems not to work while testing in LiveCycle Designer, see if it works when 
viewing it in Acrobat Professional.
19
A
Acrobat JavaScript Conversion Table
The following table lists the most commonly used Acrobat JavaScript expressions. The second and third 
columns show whether the Acrobat JavaScript expression can be used in a LiveCycle Designer form, and 
whether there is a LiveCycle Designer equivalent (Y = Yes, N = No).
Some Acrobat objects are not listed. For example, multimedia objects are not listed because they should 
all work in a LiveCycle Designer form. Some special-purpose objects are not listed because they are rarely 
used for forms. 
In cases where no equivalent LiveCycle Designer JavaScript is listed, that does not mean that it is 
impossible to do with LiveCycle Designer scripting, it only means that there is no single equivalent 
expression.
Acrobat JavaScript
Works in LiveCycle Designer 
LiveCycle Designer equivalent
LiveCycle Designer  JavaScript
Description
Annot Object Properties/Methods
< All properties and 
methods > 
Y N No equivalent
All Acrobat Annot properties and 
methods can be used in LiveCycle 
Designer forms. 
Note:Only Static forms support the 
annotation layer; Dynamic forms 
do not.
App Object Properties
app.calculate 
N N objectname.execCalculate() 
The closest equivalent, the LiveCycle 
Designer JavaScript method 
objectname.execCalculate() 
gives you control over what can be 
calculated.
app.language 
Y Y xfa.host.language 
app.monitors 
Y N —
app.platform 
Y Y xfa.host.platform 
Adobe Acrobat Adobe LiveCycle Designer
Acrobat JavaScript Conversion Table
Converting Acrobat JavaScript for Use in LiveCycle Designer Forms
20
app.plugins 
Y N —
app.toolbar 
Y N —
app.viewerType 
Y Y xfa.host.appType 
app.viewerVariatio
Y Y xfa.host.variation 
app.viewerVersion Y Y xfa.host.version 
App Object Methods
app.addMenuItem() Y N N —
app.addSubMenu() 
Y N —
app.addToolButton(
Y N —
app.alert() 
Y Y xfa.host.messageBox() 
app.beep() 
Y Y xfa.host.beep() 
app.browseForDoc() Y N N —
app.clearInterval(
Y N —
app.clearTimeOut() Y N N —
app.execDialog() 
Y N —
app.execMenuItem() Y N N —
Executes the specified menu item. Can be 
used in LiveCycle Designer for menu 
items such as Close, Find, Save, Save As, 
Open, Print, etc.
app.getNthPluginNa
me() 
Y N —
app.getPath() 
Y N —
app.goBack() 
Y N —
app.goForward() 
Y N —
Acrobat JavaScript
Works in LiveCycle Designer 
LiveCycle Designer equivalent
LiveCycle Designer  JavaScript
Description
Documents you may be interested
Documents you may be interested