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 cuForm.Get()— o referință veche nu vede modificările efectuate în altă parte. Form.RemoveField()acceptă fie un identificatorField, 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 cuValue. - Casetele combo și casetele de listă stochează valoarea
exportselectată în/V; textuldisplayeste 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() returnat | Apelaţi Flatten() pe obiectul obținut direct din formular |
| Modificarea valorii câmpului nu este vizibilă pe ecran | Aspectul câmpului nu a fost regenerat după ce valoarea s-a schimbat | Apelaţ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: |
|---|---|
Form | AcroForm 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.Fields | Fiecare 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 / RadioField | Câmpul tipat gestionează partajarea Value, ReadOnly, Required |
Page.AddTextField() / Page.AddCheckbox() | Creează un câmp direct pe o pagină |