在当今这样的时代,使用表格收集了大量数据,可填充的PDF表格在这种情况下值得一提。它们是收集和整理信息的有效方法。此外,可填充的PDF表单现在已被不同机构用作标准。例如,某些法院或采购公司可以有效地使用可填写的PDF表格来标准化其程序。对于创建此类应用程序,Aspose.PDF for Java API是最合适的API。

  • 使用Java创建可填写的PDF表单
  • 使用Java填写现有PDF文件中的表单字段
  • 使用Java修改PDF文档中的表单字段
  • 使用Java删除现有PDF文件中的表单字段
  • 使用Java保留PDF表单的扩展权利
  • 使用Java在PDF表单中使用JavaScript

目前,Java版Aspose.PDF升级到v20.6版,支持将PDF转换为CSV,修复HOCR数据的异常,感兴趣的朋友可点击下方按钮下载最新版。

使用Java创建可填写的PDF表单

可以按照以下步骤在Java应用程序中创建可填写的PDF表单:

  • 创建空白页的PDF文件
  • 在页面上添加TextBox字段和RadioButton字段
  • 保存输出的PDF文件

下面的代码段显示了如何使用Java从头创建可填充的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 PDFcom.aspose.pdf.Table table = new com.aspose.pdf.Table();//Set position heretable.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中的表单字段

我们已经学会了从头开始创建一个新的可填充PDF文件。让我们进入处理现有PDF文档的方案:

①使用Java在现有PDF文件中填写表单字段

就像在上面的示例中创建PDF表单一样,接下来继续处理相同的文档并使用Java以编程方式填充表单字段。可以按照以下步骤填写创建的表单:

  • 加载输入文件
  • 在“ 文本框”字段中填充值
  • 通过选择一个选项来填充RadioButton字段
  • 保存PDF表格

下面的代码段显示了如何使用Java填写可填写的表单:

// Open documentcom.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");// Get the fieldsTextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");// Fill form fields' valuestextBoxField1.setValue("A quick brown fox jumped over a lazy dog.");textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");// Get radio button fieldRadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");// Specify the index of radio button from groupradioField.setSelected(1);dataDir = dataDir + "Fill_PDF_Form_Field.pdf";// Save updated documentpdfDocument.save(dataDir);

②使用Java修改PDF文档中的表单字段

  • 始化输入PDF
  • 通过名称获取对表单字段的引用
// Open documentcom.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");// Get a fieldTextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");// Modify field valuetextBoxField.setValue("Changed Value");textBoxField.setReadOnly(true);dataDir = dataDir + "ModifyFormField.pdf";// Save updated documentpdfDocument.save(dataDir);

③使用Java删除现有PDF文件中的表单字段

可以在Java应用程序中轻松地删除或删除表单字段。您可以按照以下步骤操作:

  • 初始化PDF表格
  • 使用其名称删除表单字段
  • 保存更新的PDF表单

下面的代码片段显示了如何使用Java从PDF表单中删除表单字段:

// Open documentcom.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");// Delete a particular field by namepdfDocument.getForm().delete("nameBox1");dataDir = dataDir + "Delete_Form_Field.pdf";// Save modified documentpdfDocument.save(dataDir);

使用Java保留PDF表单的扩展权利

我们可能会注意到某些PDF表单具有扩展权限。它们用于避免原始内容的修改,并且仅允许填写表格。PDF文件的扩展权限可能在以下情况下受到影响。

填写这样的表格并将其保存在磁盘的不同位置。因此,我们需要通过以下步骤逐步保存此类文件:

  • 初始化PDF表格
  • 填写字段
  • 保存填写的PDF文档

下面的代码段显示了如何使用Java填写PDF表单时保留扩展权限:

// Instantiate Document instancecom.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");// Get values from all fieldsfor (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 documentpdfDocument.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 documentpdfdoc.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技术交流群(),我们很高兴为您提供查询和咨询
标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月18日
下一篇 2020年6月18日

相关推荐

发表回复

登录后才能评论