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.