PDFBox PDF文檔中的JavaScript
在前一章中,我們學習瞭如何將圖像插入到PDF文檔中。 在本章中,將學習如何將JavaScript添加到PDF文檔。
將JavaScript添加到PDF文檔
可以使用PDActionJavaScript
類將JavaScript操作添加到PDF文檔。 它代表了JavaScript操作。
以下是將JavaScript操作添加到現有PDF文檔的步驟。
第1步:加載現有的PDF文檔
使用PDDocument
類的load()
靜態方法加載現有的PDF文檔。 此方法接受一個文件對象作爲參數,因爲這是一個靜態方法,可以使用類名稱調用它,如下所示。
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
第2步:創建PDActionJavaScript對象
實例化PDActionJavaScript
對象,如下所示。 在這個類的構造函數中,以String的形式傳遞所需的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文檔,存儲在目錄:F:\worksp\pdfbox
,其空頁如下所示。
這個例子演示瞭如何在上面提到的PDF文檔中嵌入JavaScript。 在這裏,將加載sample.pdf PDF文檔並在其中嵌入JavaScript。 將此代碼保存在名稱爲AddJavaScript.java
的文件中。
package com.yiibai;
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("F:/worksp/pdfbox/sample.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("F:/worksp/pdfbox/smaple-js.pdf") );
System.out.println("Data added to the given PDF");
//Closing the document
document.close();
}
}
執行上面示例代碼,得到以下結果 -
Data added to the given PDF
打開生成的PDF文件:smaple-js.pdf,應該會看到有以下提示信息 -