Forms

Forms

Halaman ini mencakup pembuatan dan pengelolaan bidang interaktif AcroForm. Form, yang dapat diakses melalui doc.Form, adalah antarmuka untuk setiap tipe bidang; setiap metode Add*() membuat bidang yang terikat pada halaman dan persegi panjang widget serta mengembalikan handle bertipe (TextField, CheckboxField, ChoiceField, ButtonField, atau RadioField) yang berbagi properti Field Value, ReadOnly, dan Required.


Membuat Bidang

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox(), dan saudara-saudaranya masing-masing menerima objek opsi yang menyebutkan page target (berdasarkan indeks 0), rect widget, sebuah name bidang, dan gaya seperti borderColor dan 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() dan Page.AddCheckbox() membuat tipe bidang yang sama secara langsung pada sebuah halaman, tanpa menyebutkan doc.Form atau nomor page dalam objek opsi.


Membaca dan Memodifikasi Bidang

Form.Fields adalah array dari setiap Field pada dokumen; Form.Get() mencari satu berdasarkan nama lengkapnya. Value setiap bidang dapat dibaca atau ditetapkan kembali, dan ReadOnly / Required adalah properti boolean biasa.

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

Meratakan Field

Setiap metode Flatten() dari tipe field menanamkan penampilan saat ini ke dalam konten statis halaman dan menghapusnya dari AcroForm — efek permanen yang tidak interaktif yang sama seperti yang dimiliki Annotation.Flatten() untuk anotasi.

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

Tips dan Praktik Terbaik

  • Modifikasi handle field yang dikembalikan langsung oleh panggilan Add*(), atau yang baru dicari dengan Form.Get() — referensi yang usang tidak melihat perubahan yang dibuat di tempat lain.
  • Form.RemoveField() menerima baik handle Field maupun string nama field.
  • Panggil Form.GenerateAppearances() setelah mengubah nilai field secara massal sehingga penampilan setiap field di layar tetap sinkron dengan Value-nya.
  • Kotak kombo dan kotak daftar menyimpan nilai export yang dipilih di /V; teks display adalah apa yang ditampilkan oleh penampilan yang dihasilkan.

Masalah Umum

MasalahPenyebabPerbaikan
Field added with Form.AddTextField() does not appear on the pageKoordinat rect berada di luar dimensi halaman targetPastikan persegi panjang berada dalam batas halaman
Field still appears interactive after Flatten()Flatten() dipanggil pada salinan bukan pada handle Add*() / Form.Get() yang dikembalikanPanggil Flatten() pada objek yang diperoleh langsung dari formulir
Perubahan nilai field tidak terlihat di layarPenampilan field tidak dibuat ulang setelah nilai berubahPanggil Form.GenerateAppearances(), atau GenerateAppearance() milik field

FAQ

Bagaimana cara membaca atau mengubah nilai field setelah membuatnya?

Cari dengan Form.Get('fieldName') (atau gunakan handle yang dikembalikan oleh panggilan Add*()) dan baca atau tetapkan properti Value secara langsung.

Jenis field apa yang didukung oleh Form facade?

Bidang teks, kotak centang, grup radio, kotak kombo, kotak daftar, dan tombol tekan, melalui Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox(), dan Form.AddPushButton().

Bagaimana cara menghapus field?

Panggil Form.RemoveField() dengan handle field atau namanya.

Bagaimana cara membuat field formulir menjadi permanen dan tidak dapat diedit?

Panggil Flatten() pada pegangan bidang — pola yang sama digunakan untuk anotasi — yang mengintegrasikan penampilannya saat ini ke dalam halaman dan menghapusnya dari AcroForm.


API Reference Ringkasan

Kelas/MetodeDeskripsi
FormFasade AcroForm, diakses melalui doc.Form
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()Buat field dengan tipe yang sesuai
Form.FieldsSetiap Field pada dokumen, sebagai array
Form.Get()Cari bidang berdasarkan nama lengkap
Form.RemoveField()Hapus bidang berdasarkan handle atau nama
Form.GenerateAppearances()Regenerasi tampilan di layar untuk setiap bidang
TextField / CheckboxField / ChoiceField / ButtonField / RadioFieldHandle bidang bertipe yang berbagi Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Buat bidang langsung pada halaman

Lihat Juga

 Bahasa Indonesia