Forms

Forms

Questa pagina tratta la creazione e la gestione di campi interattivi AcroForm. Form, raggiungibile tramite doc.Form, è la facciata per ogni tipo di campo; ogni metodo Add*() crea un campo associato a una pagina e a un rettangolo widget e restituisce un handle tipizzato (TextField, CheckboxField, ChoiceField, ButtonField o RadioField) che condivide le proprietà comuni Field Value, ReadOnly e Required.


Creazione dei campi

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() e i loro fratelli accettano ciascuno un oggetto di opzioni che specifica il page di destinazione (basato su 0), il widget rect, un campo name e lo stile come borderColor e backgroundColor.

const form = doc.Form;
const pageNum = page.Number;

form.AddTextField({
  page: pageNum, rect: [200, 670, 450, 690], name: 'FullName', value: 'Alice Sample',
  borderColor: [0.05, 0.1, 0.3], backgroundColor: [0.9, 0.93, 1], borderWidth: 1,
  font: 'Helvetica', fontSize: 12,
});

form.AddCheckbox({
  page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe',
  checked: true, borderColor: [0.05, 0.1, 0.3], borderWidth: 1,
});

form.AddComboBox({
  page: pageNum, rect: [200, 550, 350, 570], name: 'Country', value: 'US',
  options: [
    { export: 'US', display: 'United States' },
    { export: 'UK', display: 'United Kingdom' },
    { export: 'DE', display: 'Germany' },
  ],
});

Page.AddTextField() e Page.AddCheckbox() creano gli stessi tipi di campo direttamente su una pagina, senza specificare doc.Form o un numero page nell’oggetto di opzioni.


Lettura e modifica dei campi

Form.Fields è un array di tutti i Field nel documento; Form.Get() ne cerca uno per nome completamente qualificato. Il Value di ogni campo può essere letto o riassegnato, e ReadOnly / Required sono semplici proprietà booleane.

const nameField = doc.Form.Get('FullName');
if (nameField) {
  console.log(nameField.Value);
  nameField.Value = 'Bob Sample';
}

Appiattimento dei campi

Il metodo Flatten() di ogni tipo di campo incorpora la sua apparenza corrente nel contenuto statico della pagina e lo rimuove dal AcroForm — lo stesso effetto permanente e non interattivo che Annotation.Flatten() ha per le annotazioni.

const tb = form.AddTextField({
  page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();

Suggerimenti e migliori pratiche

  • Modifica l’handle del campo restituito direttamente dalla chiamata Add*(), oppure quello recuperato di nuovo con Form.Get() — un riferimento obsoleto non vede le modifiche apportate altrove.
  • Form.RemoveField() accetta sia un handle Field sia una stringa con il nome del campo.
  • Chiama Form.GenerateAppearances() dopo aver modificato i valori dei campi in blocco affinché l’aspetto visualizzato di ogni campo rimanga sincronizzato con il suo Value.
  • Le caselle combinate e le caselle di riepilogo memorizzano il valore export selezionato in /V; il testo display è ciò che l’aspetto generato mostra.

Problemi comuni

ProblemaCausaCorrezione
Il campo aggiunto con Form.AddTextField() non appare nella paginaLe coordinate rect sono al di fuori delle dimensioni della pagina di destinazioneVerifica che il rettangolo sia all’interno dei limiti della pagina
Il campo appare ancora interattivo dopo Flatten()Flatten() è stato chiamato su una copia anziché sull’handle Add*() / Form.Get() restituitoChiama Flatten() sull’oggetto ottenuto direttamente dal modulo
La modifica del valore del campo non è visibile sullo schermoL’aspetto del campo non è stato rigenerato dopo il cambiamento del valoreChiama Form.GenerateAppearances(), oppure il GenerateAppearance() del campo

FAQ

Come leggo o modifico il valore di un campo dopo averlo creato?

Cercalo con Form.Get('fieldName') (o usa l’handle restituito dalla chiamata Add*()) e leggi o assegna direttamente la sua proprietà Value.

Quali tipi di campo supporta la facciata Form?

Campi di testo, caselle di controllo, gruppi di radio, caselle combinate, elenchi a discesa e pulsanti, tramite Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() e Form.AddPushButton().

Come rimuovo un campo?

Chiama Form.RemoveField() passando l’handle del campo o il suo nome.

Come si rende un campo di modulo permanente e non modificabile?

Chiama Flatten() sulla maniglia del campo — lo stesso schema usato per le annotazioni — che incorpora il suo aspetto attuale nella pagina e lo rimuove dal AcroForm.


API Reference Riepilogo

Classe/MetodoDescrizione
FormAcroForm facade, raggiunta tramite doc.Form
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()Crea un campo del tipo corrispondente
Form.FieldsOgni Field nel documento, come un array
Form.Get()Cerca un campo per il suo nome completamente qualificato
Form.RemoveField()Rimuovi un campo per handle o nome
Form.GenerateAppearances()Rigenera l’aspetto sullo schermo per ogni campo
TextField / CheckboxField / ChoiceField / ButtonField / RadioFieldIl campo digitato gestisce la condivisione di Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Crea un campo direttamente su una pagina

Vedi anche

 Italiano