PDFBox - 在PDF文件中使用JavaScript
在上一章中,我們學習瞭如何將影像插入PDF文件。本章將討論如何向PDF文件新增JavaScript。
向PDF文件新增JavaScript
您可以使用PDActionJavaScript類向PDF文件新增JavaScript操作。這表示一個JavaScript操作。
以下是向現有PDF文件新增JavaScript操作的步驟。
步驟1:載入現有PDF文件
使用PDDocument類的靜態方法load()載入現有PDF文件。此方法接受檔案物件作為引數,由於這是一個靜態方法,您可以使用類名呼叫它,如下所示。
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
步驟2:建立PDActionJavaScript物件
例項化PDActionJavaScript物件,如下所示。向此類的建構函式傳遞所需的JavaScript字串,如下所示。
String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3,"
+ " nType: 0,cTitle: 'PDFBox Javascript example' } );";
PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);
步驟3:將JavaScript嵌入文件
將所需的字串嵌入到PDF文件中,如下所示。
document.getDocumentCatalog().setOpenAction(PDAjavascript);
步驟4:儲存文件
新增所需內容後,使用PDDocument類的save()方法儲存PDF文件,如下面的程式碼塊所示。
document.save("Path");
步驟5:關閉文件
最後,使用PDDocument類的close()方法關閉文件,如下所示。
document.close();
示例
假設我們有一個名為sample.pdf的PDF文件,路徑為C:/PdfBox_Examples/,其中包含空頁面,如下所示。
此示例演示如何將JavaScript嵌入到上述PDF文件中。在這裡,我們將載入名為sample.pdf的PDF文件並在其中嵌入JavaScript。將此程式碼儲存在名為AddJavaScript.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();
}
}
使用以下命令從命令提示符編譯並執行儲存的Java檔案。
javac AddJavaScript.java java AddJavaScript
執行後,上述程式會將JavaScript嵌入到給定的PDF文件中,顯示以下訊息。
Data added to the given PDF
如果您嘗試開啟new.pdf文件,它將顯示如下所示的警告訊息。
廣告