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ď referenci Field, 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 jeho Value.
  • Rozbalovací seznamy a seznamové boxy ukládají vybranou hodnotu export do /V; text display je to, co zobrazuje vygenerovaný vzhled.

Časté problémy

ProblémPříčinaOprava
Pole přidané s Form.AddTextField() se na stránce nezobrazujeSouřadnice rect spadají mimo rozměry cílové stránkyOvěř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ánZavolejte 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/MetodaPopis:
FormAcroForm 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.FieldsKaž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 / RadioFieldTypované identifikátory polí sdílející Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Vytvořte pole přímo na stránce

Viz také:

 Čeština