PDFBox - JavaScript nel documento PDF

Nel capitolo precedente abbiamo imparato come inserire un'immagine in un documento PDF. In questo capitolo, discuteremo come aggiungere JavaScript a un documento PDF.

Aggiunta di JavaScript a un documento PDF

È possibile aggiungere azioni JavaScript a un documento PDF utilizzando il file PDActionJavaScriptclasse. Questo rappresenta un'azione JavaScript.

Di seguito sono riportati i passaggi per aggiungere azioni JavaScript a un documento PDF esistente.

Passaggio 1: caricamento di un documento PDF esistente

Carica un documento PDF esistente utilizzando il metodo statico load() del PDDocumentclasse. Questo metodo accetta un oggetto file come parametro, poiché si tratta di un metodo statico, è possibile richiamarlo utilizzando il nome della classe come mostrato di seguito.

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

Passaggio 2: creazione dell'oggetto PDActionJavaScript

Istanziare il file PDActionJavaScriptoggetto come mostrato di seguito. Al costruttore di questa classe, passare il JavaScript richiesto sotto forma di String come mostrato di seguito.

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

Passaggio 3: incorporare lo script Java nel documento

Incorpora la stringa richiesta nel documento PDF come mostrato di seguito.

document.getDocumentCatalog().setOpenAction(PDAjavascript);

Passaggio 4: salvataggio del documento

Dopo aver aggiunto il contenuto richiesto, salvare il documento PDF utilizzando il file save() metodo del PDDocument class come mostrato nel seguente blocco di codice.

document.save("Path");

Passaggio 5: chiusura del documento

Infine, chiudi il documento usando close() metodo del PDDocument classe come mostrato di seguito.

document.close();

Esempio

Supponiamo di avere un documento PDF denominato sample.pdf, nel percorso C:/PdfBox_Examples/ con pagine vuote come mostrato di seguito.

Questo esempio mostra come incorporare JavaScript nel documento PDF sopra menzionato. Qui, caricheremo il documento PDF denominatosample.pdfe incorporare JavaScript in esso. Salva questo codice in un file con nomeAddJavaScript.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();

   }
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac AddJavaScript.java 
java AddJavaScript

Al momento dell'esecuzione, il programma di cui sopra incorpora JavaScript nel documento PDF fornito visualizzando il seguente messaggio.

Data added to the given PDF

Se provi ad aprire il documento new.pdf visualizzerà un messaggio di avviso come mostrato di seguito.