如何在 Java 中使用交互式表单

如何在 Java 中使用交互式表单

本指南展示了如何使用 Aspose.PDF FOSS 为 Java 在 PDF 文档中创建和管理 AcroForm 字段。您将学习添加单选按钮、复选框和文本字段,以及读取提交的表单字段值。

创建单选按钮组

RadioButtonField 表示一组互斥的选项。每个选项都使用标签和一个 Rectangle 边界框添加。通过调用 setValue() 并传入其中一个选项标签来设置初始值:

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    RadioButtonField radio = new RadioButtonField(page);
    radio.setPartialName("choice");
    radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
    radio.addOption("No", new Rectangle(50, 80, 70, 100));
    doc.getForm().add(radio, 1);
    radio.setValue("Yes");
    doc.save("form.pdf");
}

添加复选框

CheckboxField 是一个单一的布尔字段。将 setChecked(true) 设置为默认选中。该字段在表单的特定页码(从 1 开始计数)添加:

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    CheckboxField cb = new CheckboxField(page, new Rectangle(50, 50, 70, 70));
    cb.setPartialName("agree");
    cb.setChecked(true);
    doc.getForm().add(cb, 1);
    doc.save("form.pdf");
}

添加文本字段

TextBoxField 接受用户文本输入。使用 setValue() 设置默认值,并在保存前将字段注册到表单中:

try (Document doc = new Document()) {
    PageCollection pages = doc.getPages();
    Page page = pages.add();
    TextBoxField text = new TextBoxField(page, new Rectangle(50, 200, 250, 220));
    text.setPartialName("name");
    text.setValue("Enter your name");
    doc.getForm().add(text, 1);
    doc.save("form.pdf");
}

获取所选值

加载表单后,通过字段的部分名称检索当前值。将字段转换为其具体类型以调用特定类型的方法:

try (Document doc = new Document("form.pdf")) {
    RadioButtonField radio = (RadioButtonField) doc.getForm().get("choice");
    String selected = radio.getValue();
    System.out.println("Selected: " + selected);
}

另请参阅

 中文