• <menu id="w2i4a"></menu>
  • logo Aspose.PDF使用教程

    文檔首頁>>Aspose.PDF使用教程>>PDF處理控件Aspose.PDF功能演示:使用Java以編程方式填充、創(chuàng)建或編輯可填充PDF表單

    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數據的異常,感興趣的朋友可點擊下方按鈕下載最新版。

    點擊下載最新版Aspose.PDF for Java

    PDF處理控件Aspose.PDF功能演示:使用Java以編程方式填充、創(chuàng)建或編輯可填充PDF表單

    使用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),我們很高興為您提供查詢和咨詢。
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();