Interaktive Formulare
Dieses Handbuch zeigt, wie man AcroForm-Felder in PDF-Dokumenten mit Aspose.PDF FOSS für Java erstellt und verwaltet. Sie lernen, Radio-Buttons, Kontrollkästchen, Textfelder, Kombinationsfelder und Listboxen hinzuzufügen und übermittelte Feldwerte abzurufen.
AcroForm API
Die Form-Klasse, zugänglich über Document.getForm(), verwaltet alle AcroForm-Felder im Dokument. Felder werden durch Aufruf von Form.add(field, pageNumber) hinzugefügt.
RadioButtonField
Erstellen Sie eine Gruppe von Radio-Buttons, wobei jede Option ihr eigenes Rectangle hat. Jede Option wird mit einem Label und einem Begrenzungsrahmen hinzugefügt. Rufen Sie setValue() auf, um eine Option vorab auszuwählen:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("color");
radio.addOption("Red", new Rectangle(50, 50, 70, 70));
radio.addOption("Blue", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Red");
doc.save("form.pdf");
}setValue() wählt programmgesteuert eine Option aus. getValue() gibt den Namen der aktuell ausgewählten Option zurück.
CheckboxField
CheckboxField stellt ein einzelnes boolesches Eingabefeld im PDF-Formular dar. Setzen Sie setChecked(true), um das Feld standardmäßig markiert zu machen. Fügen Sie es dem Formular an einer bestimmten Seitenzahl (1-basiert) hinzu:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
CheckboxField cb = new CheckboxField(page, new Rectangle(100, 100, 120, 120));
cb.setPartialName("agree");
cb.setChecked(true);
doc.getForm().add(cb, 1);
doc.save("form.pdf");
}TextBoxField
TextBoxField akzeptiert freie Texteingabe. Setzen Sie einen Standardwert mit setValue() und registrieren Sie das Feld beim Formular, bevor Sie speichern:
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("Default text");
doc.getForm().add(text, 1);
doc.save("form.pdf");
}ComboBoxField und ListBoxField
ComboBoxField und ListBoxField stellen auswählbare Optionslisten bereit. Beide akzeptieren Optionszeichenketten über addOption() und stellen getValue() zur Verfügung, um die Auswahl abzurufen.
FormEditor
FormEditor ist eine Fassadenklasse zur Arbeit mit AcroForm-Feldern. Binden Sie ein Dokument mit bindPdf(), wenden Sie Änderungen an und rufen Sie dann save() auf.
Feldwerte lesen
Nachdem ein ausgefülltes Formular geladen wurde, rufen Sie den aktuellen Wert eines benannten Feldes ab, indem Sie doc.getForm().get(name) aufrufen und zum konkreten Feldtyp casten:
try (Document doc = new Document("form.pdf")) {
RadioButtonField radio = (RadioButtonField) doc.getForm().get("color");
String selected = radio.getValue();
System.out.println("Selected: " + selected);
}