In the previous chapter, we have learnt how to insert image into a PDF document. In this chapter, we will discuss how to add JavaScript to a PDF document.
You can add JavaScript actions to a PDF document using the PDActionJavaScript class. This represents a JavaScript action.
Following are the steps to add JavaScript actions to an existing PDF document.
Load an existing PDF document using the static method load() of the PDDocument class. This method accepts a file object as a parameter, since this is a static method you can invoke it using class name as shown below.
File file = new File("path of the document") PDDocument document = PDDocument.load(file);
Instantiate the PDActionJavaScript object as shown below. To the constructor of this class, pass the required JavaScript in the form of String as shown below.
String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3," + " nType: 0,cTitle: 'PDFBox Javascript example' } );"; PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);
Embed the required string to the PDF document as shown below.
document.getDocumentCatalog().setOpenAction(PDAjavascript);
After adding the required content save the PDF document using the save() method of the PDDocument class as shown in the following code block.
document.save("Path");
Finally, close the document using close() method of the PDDocument class as shown below.
document.close();
Suppose, we have a PDF document named sample.pdf, in the path C:/PdfBox_Examples/ with empty pages as shown below.
This example demonstrates how to embed JavaScript in the above mentioned PDF document. Here, we will load the PDF document named sample.pdf and embed JavaScript in it. Save this code in a file with name AddJavaScript.java.
import java.io.File; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.interactive.action.PDActionJavaScript; public class AddJavaScript { public static void main(String args[]) throws Exception { //Loading an existing file File file = new File("C:/PdfBox_Examples/new.pdf"); PDDocument document = PDDocument.load(file); String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3," + " nType: 0, cTitle: 'PDFBox Javascript example’} );"; //Creating PDActionJavaScript object PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript); //Embedding java script document.getDocumentCatalog().setOpenAction(PDAjavascript); //Saving the document document.save( new File("C:/PdfBox_Examples/new.pdf") ); System.out.println("Data added to the given PDF"); //Closing the document document.close(); } }
Compile and execute the saved Java file from the command prompt using the following commands.
javac AddJavaScript.java java AddJavaScript
Upon execution, the above program embeds JavaScript in the given PDF document displaying the following message.
Data added to the given PDF
If you try to open the document new.pdf it will display an alert message as shown below.