Formularze interaktywne

Ten przewodnik pokazuje, jak tworzyć i zarządzać polami AcroForm w dokumentach PDF przy użyciu Aspose.PDF FOSS dla Java. Nauczysz się dodawać przyciski radiowe, pola wyboru, pola tekstowe, pola kombi i pola listy oraz pobierać przesłane wartości pól.

AcroForm API

Klasa Form, dostępna przez Document.getForm(), zarządza wszystkimi polami AcroForm w dokumencie. Pola są dodawane poprzez wywołanie Form.add(field, pageNumber).

RadioButtonField

Utwórz grupę przycisków radiowych, każda opcja w swoim własnym Rectangle. Każda opcja jest dodawana z etykietą i ramką ograniczającą. Wywołaj setValue(), aby wstępnie wybrać opcję:

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() wybiera opcję programowo. getValue() zwraca nazwę aktualnie wybranej opcji.

CheckboxField

CheckboxField reprezentuje pojedyncze pole wejściowe typu boolean w formularzu PDF. Ustaw setChecked(true), aby domyślnie zaznaczyć pole. Dodaj je do formularza na określonej stronie (indeksowanej od 1):

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 akceptuje dowolny tekst jako wejście. Ustaw wartość domyślną za pomocą setValue() i zarejestruj pole w formularzu przed zapisem:

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 i ListBoxField

ComboBoxField i ListBoxField prezentują listy z wyborem opcji. Oba akceptują ciągi opcji poprzez addOption() i udostępniają getValue() do pobierania wybranej opcji.

FormEditor

FormEditor jest klasą fasady do pracy z polami AcroForm. Powiąż dokument za pomocą bindPdf(), zastosuj zmiany, a następnie wywołaj save().

Odczytywanie wartości pól

Po załadowaniu wypełnionego formularza, pobierz bieżącą wartość nazwanego pola, wywołując doc.getForm().get(name) i rzutując na konkretny typ pola:

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

Zobacz także

 Polski