Forms
Forms
Tato stránka se zabývá vytvářením a správou interaktivních AcroForm polí. Form, dosažitelný přes doc.Form, je rozhraním pro každý typ pole; každá metoda Add*() vytvoří pole spojené se stránkou a obdélníkem widgetu a vrátí typizovaný handle (TextField, CheckboxField, ChoiceField, ButtonField nebo RadioField), který sdílí společné vlastnosti Field Value, ReadOnly a Required.
Vytváření polí
Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() a jejich sourozenci každý přijímají objekt možností, který pojmenovává cílový page (od nuly), widget rect, pole name a stylování jako borderColor a 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() a Page.AddCheckbox() vytvářejí stejné typy polí přímo na stránce, aniž by pojmenovávaly doc.Form nebo číslo page v objektu možností.
Čtení a úprava polí
Form.Fields je pole obsahující všechna Field v dokumentu; Form.Get() vyhledá jedno podle jeho plně kvalifikovaného názvu. Value každého pole lze číst nebo přiřadit novou hodnotu a ReadOnly / Required jsou jednoduché booleanové vlastnosti.
const nameField = doc.Form.Get('FullName');
if (nameField) {
console.log(nameField.Value);
nameField.Value = 'Bob Sample';
}Zploštění polí
Každý typ pole má metodu Flatten(), která zapracuje jeho aktuální vzhled do statického obsahu stránky a odstraní jej z AcroForm — stejný trvalý, neinteraktivní efekt, jaký má Annotation.Flatten() pro anotace.
const tb = form.AddTextField({
page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();Tipy a osvědčené postupy
- Upravte referenci na pole vrácenou přímo voláním
Add*(), nebo tu, kterou získáte nově pomocíForm.Get()— zastaralý odkaz nevidí změny provedené jinde. Form.RemoveField()přijímá buď referenciField, nebo řetězec s názvem pole.- Zavolejte
Form.GenerateAppearances()po hromadné změně hodnot polí, aby vzhled každého pole na obrazovce zůstal synchronizován s jehoValue. - Rozbalovací seznamy a seznamové boxy ukládají vybranou hodnotu
exportdo/V; textdisplayje to, co zobrazuje vygenerovaný vzhled.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
Pole přidané s Form.AddTextField() se na stránce nezobrazuje | Souřadnice rect spadají mimo rozměry cílové stránky | Ověřte, že obdélník leží v mezích stránky |
Pole se i po Flatten() stále jeví jako interaktivní | Flatten() byl volán na kopii místo návratové hodnoty handle Add*() / Form.Get() | Zavolejte Flatten() na objekt získaný přímo z formuláře |
| Změna hodnoty pole není na obrazovce viditelná | Vzhled pole nebyl po změně hodnoty znovu vygenerován | Zavolejte Form.GenerateAppearances(), nebo vlastní GenerateAppearance() pole |
FAQ
Jak mohu po vytvoření pole přečíst nebo změnit jeho hodnotu?
Vyhledejte to pomocí Form.Get('fieldName') (nebo použijte identifikátor, který vrátil volání Add*()) a přímo přečtěte nebo přiřaďte jeho Value vlastnost.
Jaké typy polí podporuje rozhraní Form?
Textová pole, zaškrtávací políčka, skupiny přepínačů, rozevírací seznamy, seznamová pole a tlačítka, prostřednictvím Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() a Form.AddPushButton().
Jak odstranit pole?
Zavolejte Form.RemoveField() s identifikátorem pole nebo jeho názvem.
Jak se pole formuláře učiní trvalým a needitovatelným?
Vyvolejte Flatten() na ovladači pole — stejný vzor používaný pro anotace — který zapracuje jeho aktuální vzhled do stránky a odstraní jej z AcroForm.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
Form | AcroForm fasáda, dosažená přes doc.Form |
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton() | Vytvořte pole odpovídajícího typu |
Form.Fields | Každý Field v dokumentu, jako pole |
Form.Get() | Vyhledejte pole podle jeho plně kvalifikovaného názvu |
Form.RemoveField() | Odstraňte pole podle identifikátoru nebo názvu |
Form.GenerateAppearances() | Znovu vygenerujte vzhled na obrazovce pro každé pole |
TextField / CheckboxField / ChoiceField / ButtonField / RadioField | Typované identifikátory polí sdílející Value, ReadOnly, Required |
Page.AddTextField() / Page.AddCheckbox() | Vytvořte pole přímo na stránce |