ted padova 
ted@west.net
41
writing javascripts
Creating Fixed Response Options
You may have a form where you want a user to make a selection 
from a Combo Box and based on that selection, offer choices  
respective to the first choice in a second Combo Box.
Something like choosing a shirt in one column and have sizes ap-
pearing in a second column might be one example of such a case. 
If you have shirts, pants, hats, and other articles of clothing , the 
choices in the second column will change based on the first column 
choice.
For the script (opposite page) to execute properly, you need to cre-
ate a table with at least two columns (or rows). The script is added 
to the fields in the first column (or row) in the Format tab, then 
duplicated for all subsequent columns/rows.
Do the following to set up the table:
 
Create a table with 5 columns as shown below.
 
Open the text field properties in the first field in column one 
and click the Format tab.
 
Add a Custom Keystroke Script and type the code at right in 
the JavaScript Editor.
1. if (!event.willCommit) {
2. var a = this.getField("type.0");
3. a.clearItems();
4. switch (event.change) {
5.   case "Golf Balls":a.setItems(["",  
"Titleist", "Pinnicle", "MaxFli"]);
6. break;
7.   case "Golf Hats":a.setItems(["", "Navy", 
"White", "Green"]);
8. break;
9.   case "Golf Shirts":a.setItems(["", "Small", 
"Medium", "Large", "Extra Large"]);
10. break;
11.   case "Golf Shoes":a.setItems(["", "Size 9", 
"Size 9.5", "Size 10","Size 10.5",  
"Size 11", "Size 11.5", "Size 12"]);
12. break;
13.   case "Golf Tees":a.setItems(["", "25",  
"50", "100"]);
14. break;
15. }
Item
Type
Price
Qty
Amount
Total
If you want a fixed price for each item 
selected for Item and Type, add a 
JavaScript in the Calculate tab for the 
Price field.
Open a price field in the table at 
left and you can view the JavaScript 
added here to create the fixed prices.
ted’s ti
p
Pinnicle
Size 9.5
Navy
$19.95
$89.95
$19.95
2
1
1
Golf Balls
Golf Shoes
Golf Hats
$39.90
$89.95
$19.95
$149.80
Pdf editable fields - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
change font in pdf fillable form; adding text field to pdf
Pdf editable fields - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
add an image to a pdf form; adding form fields to pdf
ted padova 
ted@west.net
42
writing javascripts
Creating Application Response Dialog Boxes
An application response dialog box typically presents the user with 
a question and solicits an answer. Based on the response certain 
actions can be invoked. You might want to ask a user how many 
products to purchase. The user responds and you can then take the 
data from the dialog box and add it to a field object.
To perform such a task, do the following:
 
Create a text field.
 
Create a button field and add the JavaScript below:
1.  var t = this.getField("qty");  
// the target field 
2.  var cResponse = app.response({ 
3.    cQuestion: "How many do you want?", 
4.    cTitle: "Quantity to purchase"});
5.      if ( cResponse == null){  
 // if Cancel is selected 
6.    app.alert("Cancel order for this item?");
7.    cResponse = 0;
8.      }
9.  else 
10. app.alert("You ordered, \""+cResponse+"\"... 
items",2);//confirmation dialog
11. {
12. t.value = cResponse; // places the data from 
the dialog to the target field
13. }
Adding Data to Secondary Forms
If you have a product brochure of a large file size, 
you might want to add application response dialog 
boxes to populate a secondary form or copy data 
from a form page on a product brochure to another 
document you use as an order form.
On a button field, add the following script:
 
Create a form and add the following Document Level JavaScript:
1. this.disclosed = true;
 
On a button field in another document add the following script:
1. this.slave = app.openDoc("myForm.pdf",this);
2. this.bringToFront();
3. for (var i = 0; i <4; i++) {//good for 4 fields
4. var quantity = this.getField("qty."+i);
5.  var result = this.slave.getField("oQty."+i);
6.   result.value = quantity.value;
7. var amount = this.getField("total." +i);
8.  var cResult = this.slave.getField("oAmount."+i);
9.   cResult.value = amount.value;
10. }
11. slave.bringToFront();
80
Click Me
If you want Adobe Reader users to fill in a 
form apart from a brochure, add the form 
to a PDF Package. Add a submit form but-
ton and enable the form with Reader us-
age rights. When the Reader user submits 
a form in a PDF Package, only the form is 
sent back to you.
ted’s ti
p
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
NET project. Powerful .NET control for batch converting PDF to editable & searchable text formats in C# class. Free evaluation library
add forms to pdf; create a fillable pdf form from a word document
C# Create PDF Library SDK to convert PDF from other file formats
Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields. Load
create pdf forms; change font size in fillable pdf form
ted padova 
ted@west.net
43
adding menu items
Adding
Menu Items
Scripts cannot be written in 
Adobe Reader, but the menus
created in Acrobat do appear  
in Adobe Reader. 
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
hardly edit PDF document. Under this situation, you need to convert PDF document to some easily editable files like Word document.
pdf save form data; add text field to pdf
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
Text in any PDF fields can be copied and pasted to .txt files by keeping original layout. VB.NET control for batch converting PDF to editable & searchable text
create a fillable pdf form from a pdf; best way to create pdf forms
ted padova 
ted@west.net
44
adding menu items
adding menu items
About Adding Menu Commands
You can add custom menu commands in Acrobat and the same 
commands you create in Acrobat are also usable in Adobe Reader.
To create a custom menu command you need to add a JavaScript to 
your JavaScripts folder.
On Windows the directory path for the JavaScripts folder is: 
Program Files:Adobe:Acrobat: 8.0: Acrobat:JavaScripts
On the Macintosh the path is:  
Users:User Log-on:Library:Acrobat User Data:80_x86:JavaScripts
Copy the file attachments in this document to the JavaScripts folder 
on your computer.
Save your text files with a .js extension.
Counting Fields
Add a menu command that counts the total fields on a from. This 
can help compare forms, diagnose forms, and provide information 
on forms that have been secured with Acrobat Security.
When you select the menu item, a dialog box opens reporting the 
find.
 
Write a JavaScript with a text editor using the following code:
1. function totalFields(){
2. app.alert("Total Fields: " + this.numFields);
3. }
4. app.addMenuItem ({cName: "Number of Fields",
cParent: "Tools", cExec: "totalFields()"
5. });
The above script adds the menu command to the Tools menu 
(line 4).
Counting Page Templates
Add a menu command in the Tools menu that 
counts Page Templates. Counting Page  
Templates can be helpful in diagnosing forms 
and provide information about forms that 
have been secured with Acrobat Security.
 
Write a JavaScript with a text editor using 
the following code:
1. function totalTemplates(){
2. app.alert("Total Page Templates: " + this.
numTemplates);
3. }
4. app.addMenuItem ({cName: "Page Templates",
cParent: "Tools", cExec: "totalTemplates()"
5. });
The above script adds the menu command to the Tools menu 
(line 4).
82
You can add both menu commands 
in Tips #81 and #82 in the same script. 
Copy lines 1-3 in one script and paste 
it after line 3 in the first script. Then 
paste lines 4-5 at the end of the first 
script.
Open the Attachments pane in this 
file and copy the tools.js file to your 
JavaScript folder and you won't need 
to write the scripts.
ted’s ti
p
VB.NET Create PDF Library SDK to convert PDF from other file
Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields in Visual Basic .NET application.
pdf form save; change tab order in pdf form
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
to PDF; VB.NET Protect: Add Password to PDF; VB.NET Form: extract value from fields; Convert multiple pages PowerPoint to fillable and editable PDF documents.
create a pdf form that can be filled out; add text fields to pdf
ted padova 
ted@west.net
45
adding menu items
Listing Menu Items
It you want to access a menu command using JavaScript or add 
a menu item, you need to know the menu items names used by 
JavaScript. 
To view a list of menu item names, do the following:
 
Open the JavaScript Console (Command/CTRL + J).
 
Type the following code in the Console:
1.  app.listMenuItems();
 
Press the NumPad Enter key and all the menu item names are 
shown in the JavaScript Console.
Adding a URL to a Menu
You can add menu commands in Acrobat that 
open URLs in your default Web browser.
Here's the JavaScript code for accessing the 
FedEx/Kinkos web site to order prints. Replace 
the URL in this script with your favorite print 
service.
Write a JavaScript with a text editor using the following code:
1. app.addMenuItem({
2. cName: "FedExKinkos",
3. cParent: "Help",
4. cExec: "app.launchURL('https:// 
partner.fedexkinkos.com/partnerInit.do');",
5. nPos: 16
});
Line 5 in the above code positions the command in the Help 
menu. You may want to change the position by typing a  
different value.
When the menu command is selected your default  
Web browser opens and takes you to the target URL.
84
To display toolbar buttons, type the  
following in the JS Console:
app.listToolbarButtons();
ted’s ti
p
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Add Image to PDF; VB.NET Protect: Add Password to PDF; VB.NET Form: extract value from fields; Convert multiple pages Word to fillable and editable PDF documents
adding text fields to a pdf; change font on pdf form
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
PDF; VB.NET Protect: Add Password to PDF; VB.NET Form: extract value from fields; Create fillable and editable PDF documents from Excel in Visual Basic .NET class
pdf editable fields; create a pdf form from excel
ted padova 
ted@west.net
46
adding menu items
Add a File | New Menu Command
Acrobat provides you an option to create new blank pages. Howev-
er, the new pages by default have a text block that can be annoying 
when you want to use blank pages for temporary documents to 
hold form fields.
With a little JavaScript you can create the missing File | New  
command that Acrobat has avoided through 8 generations of the 
program. The following code creates the command with several  
different custom page size options:
 
Type the following code in a text editor and save the file to 
your JavaScript folder with a .js extension:
1.  trustedNewDoc = app.trustedFunction( function 
(nWidth, nHeight)
2.  { 
3.  app.beginPriv(); 
4.  switch( arguments.length ) { 
5.  case 2: 
6.  app.newDoc( nWidth, nHeight ); 
7.  break; 
8.  case 1: 
9.  app.newDoc( nWidth ); 
10. break; 
11. default: 
12. app.newDoc(); 
13. } 
14. app.endPriv();
15. })
16. app.addSubMenu({ cName: "New", cParent: 
"File", nPos: 0 })
17. app.addMenuItem({ cName: "Letter Portrait", 
cParent: "New", cExec: "trustedNewDoc();"});
18. app.addMenuItem({ cName: "Let-
ter Landscape", cParent: "New", cExec: 
"trustedNewDoc(792,612);"});
19. app.addMenuItem({ cName: "A4", cParent: "New", 
cExec: "trustedNewDoc(420,595)"});
20. app.addMenuItem({ cName: "Slide 
(10x7.5)", cParent: "New", cExec: 
"trustedNewDoc(720,540);"});
21. app.addMenuItem({ cName: "Screen 
(640x480)", cParent: "New", cExec: 
"trustedNewDoc(640,480);"});
22. app.addMenuItem({ cName: "Note 
(4x3)", cParent: "New", cExec: 
"trustedNewDoc(288,216);"});
23. app.addMenuItem({ cName: "Custom...", cParent: 
"New", cExec: 
24. "var nWidth = app.response({ cQuestion:'Enter 
Width in Points',\
25. cTitle: 'Custom Page Size'});" 
+"if (nWidth == null) nWidth = 612;"  
+"var nHeight = app.response({ 
cQuestion:'Enter Height in Points',\
26. cTitle: 'Custom Page Size'});" 
+"if (nHeight == null) nHeight = 
792;"+"trustedNewDoc(nWidth, nHeight) "});
Open the Attachments panel in this 
file and copy the newPage.js file to 
your JavaScript folder and you won't 
need to write the script.
ted’s ti
p
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
NET control to export Word from multiple PDF files in VB. Create editable Word file online without email. Supports transfer from password protected PDF.
pdf forms save; add email button to pdf form
ted padova 
ted@west.net
47
adobe livecycle designer
Adobe
LiveCycle Designer
Windows Only
ted padova 
ted@west.net
48
adobe livecycle designer
Changing the Default Template
LiveCycle Designer (LCD) offers you an number of templates that 
you can modify to create your own personal forms. When you 
choose File | New the New Form Assistant opens where you can 
choose from one of the many templates available to Designer. 
When you click the New tool in Designer, you can bypass the New 
Form Assistant dialog box and create a form based on a template. 
To change the default template in Designer to one that you prefer 
when clicking the New tool, do the following:
 
Choose Tools | Template Manager (note that you do not need 
a file open to work in the Template Manager).
 
Click the tabs to view the templates and choose the one you 
want to use as your default template.
 
Click Set Selected as Default in the Template Manager.
Adding an Address Block
Tip #27 described creating an address block 
in Acrobat by copying/pasting fields between 
documents.
LiveCycle Designer provides you a default 
block of fields you can drag and drop to your 
forms.
To add an address block to a Designer form, do the following:
Create a blank new form (click the New tool in the Designer 
toolbar.
Open the Library panel and scroll down to the Custom  
section in the panel.
Click the Address Block item and drag it to your form.
87
You can customize an address block or any 
other group of fields and add them to your 
Library panel.
Edit the fields on a blank new page and drag 
them to the Library panel. The Add Library 
Object dialog opens where you can add a 
name, description, and select which group 
you want to add the fields.
ted’s ti
p
ted padova 
ted@west.net
49
adobe livecycle designer
Adding Button Imports
Tip #57 described how to add a button import on an Acrobat form 
using a JavaScript. When you create a button import in Acrobat, the 
JavaScript cannot be used in Adobe Reader. '
Using LiveCycle Designer, you can add a button field that an Adobe 
Reader user can use to add button faces to a button from a variety 
of different image formats.
To add a button that can be used to import images in both Acrobat 
and Adobe Reader, do the following:
 
Create a form or import a form from Adobe Acrobat (see Tip 
#95 for instructions on converting Acrobat forms to LiveCycle 
Designer forms).
 
Open the Library panel and open the Standard fields panel.
 
Click the Image Field and drag it to your form.
 
Save the form. Note that you do not need any scripting for 
the button action to work in Adobe Reader.
Editing Backgrounds
LiveCycle Designer is not a sophisticated 
design tool as you find with programs like 
Adobe InDesign and Adobe Illustrator.
However, you can add a few design elements 
in Designer and change background colors to 
solid colors and gradients.
To change a background color to a gradient, do the following: 
Create a new blank document.
Click the Master Page tab.
Size down the default subform content area to reduce the 
size of the rectangle.
Drag the Image object from the Standard library panel.
Size the image to fill the page size.
Open the Border panel.
Choose from options in the Background fill for a Radial - to 
edge or Radial - to center.
Resize the subform content area to the desired size.
89
Note that the form does not need to be 
enabled with Adobe Reader usage rights 
for the Reader user to import images.
ted’s ti
p
ted padova 
ted@west.net
50
adobe livecycle designer
Binding an XML Sample File to a Form
Designing forms in LiveCycle Designer for data imports need to be 
debugged in two areas. You must have a proper XML file that can be 
imported in your form and you need to have the proper data con-
nections and scripting on the form in Designer.
Testing and debugging a form can be a challenge if one or the 
other items is not properly set up. To test a form for data imports to 
be certain the form scripts work properly, you can start by creating 
a sample XML file.
To create a sample XML file you can use Windows NotePad. Another 
solution is to use an XML editor. My preference for editing XML files 
is using TextPad (http:www.//textpad.com).
 
Write a short script in an XML editor or Windows NotePad.
 
In Designer, open the Data View panel on a new blank  
document.
 
Open the Data View menu and choose New Data Connection.
 
Choose Sample XML Data file in the New Data Connection 
dialog box and click Next.
 
Select the sample XML file and click Finish.
 
Drag fields from the Data View panel to the document page.
Testing the XML Data File
As a takeoff from Tip #90, continue editing your 
form with field formatting and layout. 
When the form is designed as you like, open the 
Data View panel and do the following to test the 
data connection:
Open the Data View panel and right click on Data Connection 
at the top of the menu to open a context menu.
Choose Delete Data Connection.
Remove the check mark in the Delete Data Connection  
dialog box and click OK.
Choose File | Form Properties.
Click the Defaults tab and click the Browse icon to the right of 
the Data File field box.
Locate the sample XML file and click Open.
Click OK in the Form Properties dialog box and click  
PDF Preview.
If the sample data do not import properly and if your XML file 
was written correctly, you'll know that you have some  
problems with the design of your form.
91
Documents you may be interested
Documents you may be interested