Moduli interattivi

Questa guida mostra come creare e gestire i campi AcroForm nei documenti PDF utilizzando Aspose.PDF FOSS per Java. Imparerai ad aggiungere pulsanti radio, caselle di controllo, campi di testo, caselle combinate e caselle di elenco, e a recuperare i valori dei campi inviati.

AcroForm API

La classe Form, accessibile tramite Document.getForm(), gestisce tutti i campi AcroForm nel documento. I campi vengono aggiunti chiamando Form.add(field, pageNumber).

RadioButtonField

Crea un gruppo di pulsanti radio, ogni opzione nella sua Rectangle. Ogni opzione viene aggiunta con un’etichetta e un riquadro di delimitazione. Chiama setValue() per pre-selezionare un’opzione:

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() seleziona un’opzione programmaticamente. getValue() restituisce il nome dell’opzione attualmente selezionata.

CheckboxField

CheckboxField rappresenta un singolo campo di input booleano nel modulo PDF. Imposta setChecked(true) per fare in modo che il campo sia selezionato per impostazione predefinita. Aggiungilo al modulo in un numero di pagina specifico (indicizzato a partire da 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 accetta input di testo libero. Imposta un valore predefinito con setValue() e registra il campo nel modulo prima di salvare:

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

ComboBoxField e ListBoxField presentano elenchi di opzioni selezionabili. Entrambi accettano stringhe di opzione tramite addOption() e espongono getValue() per recuperare la selezione.

FormEditor

FormEditor è una classe facciata per lavorare con i campi AcroForm. Associa un documento con bindPdf(), applica le modifiche, quindi chiama save().

Lettura dei valori dei campi

Dopo aver caricato un modulo compilato, recupera il valore corrente di un campo denominato chiamando doc.getForm().get(name) e facendo il cast al tipo di campo concreto:

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

Vedi anche

 Italiano