How to enhance your PDF forms with JavaScript
Installation • Usage • PDF issues • Imposition • Other |
Introduction
If you have attempted the previous PDF how-to’s, you will be aware that you can create some powerful forms by using Scribus and Acrobat Reader. Unfortunately, Adobe has put restrictions on Reader so that it does not have all the capabilities of Acrobat Professional. However, there are many useful features still available, especially with using JavaScript to make Scribus PDF forms very useful.
Information and References Available
The Adobe Web Site has two free references available on JavaScripting
http://www.adobe.com/devnet/acrobat/javascript.html
Acrobat JavaScript Scripting Guide (PDF, 2.5M)
Acrobat JavaScript Scripting Reference (PDF, 7.1M)
Acrobat Community
JavaScript Corner
http://www.acrobatusers.com/tech_corners/javascript_corner/index.php
JavaScript User Forums
http://www.adobeforums.com/cgi-bin/webx?13@@.3bbedaa6
PDF Planet
Some useful JavaScript examples
1. Insert the current date into a Text Field (DateField) when the PDF is opened.
snip--------------------------------------------
function date()
{var fld = this.getField("DateField");
fld.value = util.printd("dd mmmm yyyy",new Date());
}
date(); // call my function
snip--------------------------------------------
To place this function, on Menu select Edit - > JavaScripts -> Add
You can cut and paste the code from this page. There must be a Text Field on the page named DateField.
2. Insert the current year into a Text Field (Year) when the PDF is opened.
snip--------------------------------------------
function Year()
{var fld1 = this.getField("Year");
fld1.value = util.printd("yyyy",new Date());
}
Year(); // call my function
snip--------------------------------------------
To place this function, on Menu select Edit - > JavaScripts -> Add
You can cut and paste the code from this page. There must be a Text Field on the page named Year
3. Hide a Text Field (zzztext) when the PDF is viewed on Screen but allow the field to Print.
snip--------------------------------------------
function HideView()
{var title = this.getField("zzztext");
title.display = display.noView;
}
HideView();// call my function
snip--------------------------------------------
To place this function, on Menu select Edit - > JavaScripts -> Add
You can cut and paste the code from this page. There must be a Text Field on the page named zzztext
4. Create a Print Button
Create a Button Field
Right click with your mouse on the “Print” Button
A menu pops up and select PDF Options –> Field Properties
Next select the Action Tab –> choose JavaScript and then in the default Mouse Up event -
Click on Edit and insert the following
snip--------------------------------------------
var pp = this.getPrintParams();
pp.interactive = pp.constants.interactionLevel.silent;
pp.printContent = pp.constants.printContents.formFieldsOnly;
this.print(pp);
snip--------------------------------------------
5. Create a Text Field with the Date Printed which only appears on the printed document.
snip--------------------------------------------
function Print()
{var oDate = new Date(); // get the current date time object
var sDate = util.printd("mm/dd/yyyy h:mm t" , oDate); // format date time string
this.getField("TimePrint").value = "Printed: " + sDate + "m"; // fillin the field value
}
Print();// call my function
snip--------------------------------------------
To place this function, on Menu select Edit - > JavaScripts -> Add
You can cut and paste the code from this page. There must be a Text Field on the page named TimePrint.
You will also need to create a HideView function for the TimePrint Field some that the field is hidden from view until the document is printed.