PDFBox - JavaScript em documento PDF

No capítulo anterior, aprendemos como inserir imagens em um documento PDF. Neste capítulo, discutiremos como adicionar JavaScript a um documento PDF.

Adicionando JavaScript a um documento PDF

Você pode adicionar ações JavaScript a um documento PDF usando o PDActionJavaScriptclasse. Isso representa uma ação JavaScript.

A seguir estão as etapas para adicionar ações JavaScript a um documento PDF existente.

Etapa 1: Carregando um documento PDF existente

Carregue um documento PDF existente usando o método estático load() do PDDocumentclasse. Este método aceita um objeto de arquivo como parâmetro, uma vez que é um método estático, você pode invocá-lo usando o nome da classe conforme mostrado abaixo.

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

Etapa 2: Criação do objeto PDActionJavaScript

Instancie o PDActionJavaScriptobjeto como mostrado abaixo. Para o construtor desta classe, passe o JavaScript necessário na forma de String, conforme mostrado abaixo.

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

Etapa 3: Incorporação de script Java no documento

Incorpore a string necessária ao documento PDF conforme mostrado abaixo.

document.getDocumentCatalog().setOpenAction(PDAjavascript);

Etapa 4: Salvar o documento

Depois de adicionar o conteúdo necessário, salve o documento PDF usando o save() método do PDDocument classe conforme mostrado no seguinte bloco de código.

document.save("Path");

Etapa 5: Fechando o Documento

Por fim, feche o documento usando close() método do PDDocument classe como mostrado abaixo.

document.close();

Exemplo

Suponha que temos um documento PDF chamado sample.pdf, no caminho C:/PdfBox_Examples/ com páginas vazias como mostrado abaixo.

Este exemplo demonstra como incorporar JavaScript no documento PDF mencionado acima. Aqui, vamos carregar o documento PDF chamadosample.pdfe incorporar JavaScript nele. Salve este código em um arquivo com o 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();

   }
}

Compile e execute o arquivo Java salvo no prompt de comando usando os comandos a seguir.

javac AddJavaScript.java 
java AddJavaScript

Após a execução, o programa acima incorpora JavaScript no documento PDF fornecido exibindo a seguinte mensagem.

Data added to the given PDF

Se você tentar abrir o documento new.pdf ele exibirá uma mensagem de alerta conforme mostrado abaixo.