PDFBox - JavaScript dans un document PDF

Dans le chapitre précédent, nous avons appris à insérer une image dans un document PDF. Dans ce chapitre, nous verrons comment ajouter du JavaScript à un document PDF.

Ajout de JavaScript à un document PDF

Vous pouvez ajouter des actions JavaScript à un document PDF à l'aide du PDActionJavaScriptclasse. Cela représente une action JavaScript.

Voici les étapes pour ajouter des actions JavaScript à un document PDF existant.

Étape 1: chargement d'un document PDF existant

Charger un document PDF existant en utilisant la méthode statique load() du PDDocumentclasse. Cette méthode accepte un objet fichier en tant que paramètre, puisqu'il s'agit d'une méthode statique, vous pouvez l'appeler en utilisant le nom de classe comme indiqué ci-dessous.

File file = new File("path of the document")
PDDocument document = PDDocument.load(file);

Étape 2: Création de l'objet PDActionJavaScript

Instancier le PDActionJavaScriptobjet comme indiqué ci-dessous. Au constructeur de cette classe, transmettez le JavaScript requis sous la forme de String comme indiqué ci-dessous.

String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3,"
   + " nType: 0,cTitle: 'PDFBox Javascript example' } );";       
PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);

Étape 3: intégration du script Java dans le document

Incorporez la chaîne requise au document PDF comme indiqué ci-dessous.

document.getDocumentCatalog().setOpenAction(PDAjavascript);

Étape 4: enregistrement du document

Après avoir ajouté le contenu requis, enregistrez le document PDF à l'aide du save() méthode de la PDDocument class comme indiqué dans le bloc de code suivant.

document.save("Path");

Étape 5: fermeture du document

Enfin, fermez le document en utilisant close() méthode de la PDDocument classe comme indiqué ci-dessous.

document.close();

Exemple

Supposons que nous ayons un document PDF nommé sample.pdf, Sur le chemin C:/PdfBox_Examples/ avec des pages vides comme indiqué ci-dessous.

Cet exemple montre comment incorporer JavaScript dans le document PDF mentionné ci-dessus. Ici, nous allons charger le document PDF nommésample.pdfet intégrez-y JavaScript. Enregistrez ce code dans un fichier avec un nomAddJavaScript.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();

   }
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac AddJavaScript.java 
java AddJavaScript

Lors de l'exécution, le programme ci-dessus incorpore JavaScript dans le document PDF donné affichant le message suivant.

Data added to the given PDF

Si vous essayez d'ouvrir le document new.pdf il affichera un message d'alerte comme indiqué ci-dessous.