PDFBox - JavaScript en documento PDF
En el capítulo anterior, aprendimos cómo insertar una imagen en un documento PDF. En este capítulo, analizaremos cómo agregar JavaScript a un documento PDF.
Agregar JavaScript a un documento PDF
Puede agregar acciones de JavaScript a un documento PDF utilizando el PDActionJavaScriptclase. Esto representa una acción de JavaScript.
Los siguientes son los pasos para agregar acciones de JavaScript a un documento PDF existente.
Paso 1: carga de un documento PDF existente
Cargue un documento PDF existente utilizando el método estático load() del PDDocumentclase. Este método acepta un objeto de archivo como parámetro, ya que este es un método estático, puede invocarlo usando el nombre de clase como se muestra a continuación.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Paso 2: Crear el objeto PDActionJavaScript
Instancia del PDActionJavaScriptobjeto como se muestra a continuación. Al constructor de esta clase, pase el JavaScript requerido en forma de Cadena como se muestra a continuación.
String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3,"
+ " nType: 0,cTitle: 'PDFBox Javascript example' } );";
PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);
Paso 3: incrustación de un script Java en el documento
Inserte la cadena requerida en el documento PDF como se muestra a continuación.
document.getDocumentCatalog().setOpenAction(PDAjavascript);
Paso 4: guardar el documento
Después de agregar el contenido requerido, guarde el documento PDF usando el save() método del PDDocument class como se muestra en el siguiente bloque de código.
document.save("Path");
Paso 5: cerrar el documento
Finalmente, cierre el documento usando close() método del PDDocument clase como se muestra a continuación.
document.close();
Ejemplo
Supongamos que tenemos un documento PDF llamado sample.pdf, en el camino C:/PdfBox_Examples/ con páginas vacías como se muestra a continuación.
Este ejemplo demuestra cómo incrustar JavaScript en el documento PDF mencionado anteriormente. Aquí cargaremos el documento PDF llamadosample.pdfe incrustar JavaScript en él. Guarde este código en un archivo con nombreAddJavaScript.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 y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos.
javac AddJavaScript.java
java AddJavaScript
Tras la ejecución, el programa anterior incrusta JavaScript en el documento PDF dado que muestra el siguiente mensaje.
Data added to the given PDF
Si intenta abrir el documento new.pdf mostrará un mensaje de alerta como se muestra a continuación.