PDF處理控件Aspose.PDF功能演示:使用Java以編程方式填充、創(chuàng)建或編輯可填充PDF表單
在當今這樣的時代,使用表格收集了大量數據,可填充的PDF表格在這種情況下值得一提。它們是收集和整理信息的有效方法。此外,可填充的PDF表單現在已被不同機構用作標準。例如,某些法院或采購公司可以有效地使用可填寫的PDF表格來標準化其程序。對于創(chuàng)建此類應用程序,Aspose.PDF for Java API是最合適的API。
在本文中,我們將探索如何使用Java以編程方式填充,創(chuàng)建或編輯可填充PDF表單。
- 使用Java創(chuàng)建可填寫的PDF表單
- 使用Java填寫現有PDF文件中的表單字段
- 使用Java修改PDF文檔中的表單字段
- 使用Java刪除現有PDF文件中的表單字段
- 使用Java保留PDF表單的擴展權利
- 使用Java在PDF表單中使用JavaScript
目前,Java版Aspose.PDF升級到v20.6版,支持將PDF轉換為CSV,修復HOCR數據的異常,感興趣的朋友可點擊下方按鈕下載最新版。
使用Java創(chuàng)建可填寫的PDF表單
可以按照以下步驟在Java應用程序中創(chuàng)建可填寫的PDF表單:
- 創(chuàng)建空白頁的PDF文件
- 在頁面上添加TextBox字段和RadioButton字段
- 保存輸出的PDF文件
下面的代碼段顯示了如何使用Java從頭創(chuàng)建可填充的PDF表單:
com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document(); com.aspose.pdf.Page page = pdfdoc.getPages().add(); TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770)); nameBox.setPartialName("nameBox1"); nameBox.getDefaultAppearance().setFontSize(10); nameBox.setMultiline(true); com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox); nameBorder.setWidth(1); nameBox.setBorder(nameBorder); nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK); nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED)); TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738)); mrnBox.setPartialName("Box1"); mrnBox.getDefaultAppearance().setFontSize(10); com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox); mrnBorder.setWidth(1); mrnBox.setBorder(mrnBorder); mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK); mrnBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED)); // Add form fields to first page of PDF document pdfdoc.getForm().add(nameBox, 1); pdfdoc.getForm().add(mrnBox, 1); //Add Radiobuttons at specific position coordinates in PDF com.aspose.pdf.Table table = new com.aspose.pdf.Table(); //Set position here table.setLeft(200); table.setTop(300); table.setColumnWidths("120"); page.getParagraphs().add(table); com.aspose.pdf.Row r1 = table.getRows().add(); com.aspose.pdf.Row r2 = table.getRows().add(); com.aspose.pdf.Cell c1 = r1.getCells().add(); com.aspose.pdf.Cell c2 = r2.getCells().add(); com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page); rf.setPartialName("radio"); pdfdoc.getForm().add(rf, 1); com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField(); com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField(); opt1.setOptionName("Yes"); opt2.setOptionName("No"); opt1.setWidth(15); opt1.setHeight(15); opt2.setWidth(15); opt2.setHeight(15); rf.add(opt1); rf.add(opt2); opt1.setBorder(new com.aspose.pdf.Border(opt1)); opt1.getBorder().setWidth(1); opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid); opt1.getCharacteristics().setBorder(java.awt.Color.BLACK); opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED); opt1.setCaption(new com.aspose.pdf.TextFragment("Yes")); opt2.setBorder(new com.aspose.pdf.Border(opt1)); opt2.getBorder().setWidth(1); opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid); opt2.getCharacteristics().setBorder(java.awt.Color.BLACK); opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED); opt2.setCaption(new com.aspose.pdf.TextFragment("No")); c1.getParagraphs().add(opt1); c2.getParagraphs().add(opt2); pdfdoc.save(dataDir + "Fillable_PDF_Form.pdf");
使用Java填充,修改或刪除現有PDF中的表單字段
我們已經學會了從頭開始創(chuàng)建一個新的可填充PDF文件。讓我們進入處理現有PDF文檔的方案:
①使用Java在現有PDF文件中填寫表單字段
就像在上面的示例中創(chuàng)建PDF表單一樣,接下來繼續(xù)處理相同的文檔并使用Java以編程方式填充表單字段??梢园凑找韵虏襟E填寫創(chuàng)建的表單:
- 加載輸入文件
- 在“ 文本框”字段中填充值
- 通過選擇一個選項來填充RadioButton字段
- 保存PDF表格
下面的代碼段顯示了如何使用Java填寫可填寫的表單:
// Open document com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf"); // Get the fields TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1"); TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1"); // Fill form fields' values textBoxField1.setValue("A quick brown fox jumped over a lazy dog."); textBoxField2.setValue("A quick brown fox jumped over a lazy dog."); // Get radio button field RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio"); // Specify the index of radio button from group radioField.setSelected(1); dataDir = dataDir + "Fill_PDF_Form_Field.pdf"; // Save updated document pdfDocument.save(dataDir);
②使用Java修改PDF文檔中的表單字段
有時我們需要編輯或更新PDF表單中的字段值??梢园凑找韵虏襟E輕松編輯可填寫的PDF表單:
- 始化輸入PDF
- 通過名稱獲取對表單字段的引用
- 編輯PDF表格
- 保存已編輯的PDF表單
下面的代碼段顯示了如何使用Java更新或編輯可填充PDF文件:
// Open document com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf"); // Get a field TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1"); // Modify field value textBoxField.setValue("Changed Value"); textBoxField.setReadOnly(true); dataDir = dataDir + "ModifyFormField.pdf"; // Save updated document pdfDocument.save(dataDir);
③使用Java刪除現有PDF文件中的表單字段
可以在Java應用程序中輕松地刪除或刪除表單字段。您可以按照以下步驟操作:
- 初始化PDF表格
- 使用其名稱刪除表單字段
- 保存更新的PDF表單
下面的代碼片段顯示了如何使用Java從PDF表單中刪除表單字段:
// Open document com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf"); // Delete a particular field by name pdfDocument.getForm().delete("nameBox1"); dataDir = dataDir + "Delete_Form_Field.pdf"; // Save modified document pdfDocument.save(dataDir);
使用Java保留PDF表單的擴展權利
我們可能會注意到某些PDF表單具有擴展權限。它們用于避免原始內容的修改,并且僅允許填寫表格。PDF文件的擴展權限可能在以下情況下受到影響。
填寫這樣的表格并將其保存在磁盤的不同位置。因此,我們需要通過以下步驟逐步保存此類文件:
- 初始化PDF表格
- 填寫字段
- 保存填寫的PDF文檔
下面的代碼段顯示了如何使用Java填寫PDF表單時保留擴展權限:
// Instantiate Document instance com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf"); // Get values from all fields for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields()) { // If the fullname of field contains nameBox1, perform the operation if (formField.getFullName().contains("nameBox1")) { // Cast form field as TextBox TextBoxField textBoxField = (TextBoxField) formField; // Modify field value textBoxField.setValue("Preserve Extended Features"); } } // Save the updated document pdfDocument.save();
使用Java在PDF表單中使用JavaScript
可以使用Java和Aspose.PDF for Java使用Java填寫可填寫的PDF表單字段。遵循以下步驟:
- 載入PDF文件
- 在特定頁面位置添加字段
- 設置JavaScript并為文檔打開操作保存PDF文件
以下代碼段顯示了如何在可填寫的PDF表單中使用JavaScript:
com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document(); pdfdoc.getPages().add(); TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770)); textBoxField.setPartialName("textbox1"); textBoxField.setValue("Text Box"); //TextBoxField.Border = new Border(); com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField); border.setWidth(2); border.setDash(new com.aspose.pdf.Dash(1, 1)); textBoxField.setBorder(border); textBoxField.getDefaultAppearance().setFontSize(10); textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN)); // Add field to the document pdfdoc.getForm().add(textBoxField, 1); String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();"; pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS)); pdfdoc.save(dataDir + "JS_Form.pdf");
還想要更多嗎?您可以點擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢。