Forms

Forms

Această pagină acoperă crearea și gestionarea câmpurilor interactive AcroForm. Form, accesat prin doc.Form, este fațada pentru fiecare tip de câmp; fiecare metodă Add*() creează un câmp legat de o pagină și de un dreptunghi widget și returnează un handle tipizat (TextField, CheckboxField, ChoiceField, ButtonField sau RadioField) care împărtășește proprietățile comune Field Value, ReadOnly și Required.


Crearea câmpurilor

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() și frații lor primesc fiecare un obiect de opțiuni care specifică page țintă (indexat de la 0), widget-ul rect, un câmp name și stiluri precum borderColor și 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() și Page.AddCheckbox() creează aceleași tipuri de câmp direct pe o pagină, fără a specifica doc.Form sau un număr page în obiectul de opțiuni.


Citirea și modificarea câmpurilor

Form.Fields este un tablou cu toate Field din document; Form.Get() caută unul după numele său complet calificat. Value fiecărui câmp poate fi citit sau reasignat, iar ReadOnly / Required sunt proprietăți boolean simple.

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

Aplatizarea câmpurilor

Metoda Flatten() a fiecărui tip de câmp încorporează aspectul său curent în conținutul static al paginii și îl elimină din AcroForm — același efect permanent, non-interactiv pe care Annotation.Flatten() îl are pentru adnotări.

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

Sfaturi și practici recomandate

  • Modificați identificatorul de câmp returnat direct de apelul Add*(), sau pe cel căutat recent cu Form.Get() — o referință veche nu vede modificările efectuate în altă parte.
  • Form.RemoveField() acceptă fie un identificator Field, fie un șir de caractere cu numele câmpului.
  • Apelați Form.GenerateAppearances() după ce ați modificat valorile câmpurilor în bloc, astfel încât aspectul pe ecran al fiecărui câmp să rămână sincronizat cu Value.
  • Casetele combo și casetele de listă stochează valoarea export selectată în /V; textul display este ceea ce afișează aspectul generat.

Probleme comune

ProblemăCauzăRemediere
Câmpul adăugat cu Form.AddTextField() nu apare pe paginăCoordonatele rect cad în afara dimensiunilor paginii țintăConfirmă că dreptunghiul se află în limitele paginii
Câmpul încă apare interactiv după Flatten()Flatten() a fost apelat pe o copie în loc de handle-ul Add*() / Form.Get() returnatApelaţi Flatten() pe obiectul obținut direct din formular
Modificarea valorii câmpului nu este vizibilă pe ecranAspectul câmpului nu a fost regenerat după ce valoarea s-a schimbatApelaţi Form.GenerateAppearances(), sau pe GenerateAppearance() propriu al câmpului

FAQ

Cum pot citi sau modifica valoarea unui câmp după ce l-am creat?

Caută-l cu Form.Get('fieldName') (sau folosește referința pe care apelul Add*() a returnat-o) și citește sau atribuie proprietatea Value direct.

Ce tipuri de câmpuri suportă fațada Form?

Câmpuri de text, casete de bifare, grupuri radio, casete combo, casete de listă și butoane de tip push, prin Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() și Form.AddPushButton().

Cum pot elimina un câmp?

Apelează Form.RemoveField() cu fie referința câmpului, fie numele său.

Cum se face un câmp de formular permanent și nemodificabil?

Apelă Flatten() pe mânerul câmpului — același model utilizat pentru adnotări — care înglobează aspectul său actual în pagină și îl elimină din AcroForm.


API Reference Rezumat

Clasă/MetodăDescriere:
FormAcroForm fațadă, accesată prin doc.Form
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()Creează un câmp de tipul corespunzător
Form.FieldsFiecare Field din document, ca un tablou
Form.Get()Caută un câmp după numele său complet calificat
Form.RemoveField()Elimină un câmp prin identificator sau nume
Form.GenerateAppearances()Regenera aspectul pe ecran pentru fiecare câmp
TextField / CheckboxField / ChoiceField / ButtonField / RadioFieldCâmpul tipat gestionează partajarea Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Creează un câmp direct pe o pagină

Vezi și:

 Română