Forms
Forms
Bu sayfa, etkileşimli AcroForm alanlarının oluşturulması ve yönetilmesini kapsar. Form, doc.Form üzerinden erişilen, her alan türü için bir dış görünümüdür; her Add*() yöntemi, bir sayfaya ve bir widget dikdörtgenine bağlı bir alan oluşturur ve (TextField, CheckboxField, ChoiceField, ButtonField veya RadioField) tipinde bir tanıtıcı döndürür; bu tanıtıcı ortak Field özelliklerini Value, ReadOnly ve Required paylaşır.
Alan Oluşturma
Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() ve kardeşleri, hedef page‘yi (0 tabanlı) adlandıran, widget rect‘ı, bir name‘yi ve borderColor ve backgroundColor gibi stil ayarlarını içeren bir seçenek nesnesi alır.
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() ve Page.AddCheckbox(), seçenek nesnesinde doc.Form veya bir page numarası belirtmeden, aynı alan türlerini doğrudan bir sayfada oluşturur.
Alanları Okuma ve Değiştirme
Form.Fields, belgede bulunan her Field‘in bir dizisidir; Form.Get() tam nitelikli adıyla birini bulur. Her alanın Value‘i okunabilir veya yeniden atanabilir, ve ReadOnly / Required basit boolean özelliklerdir.
const nameField = doc.Form.Get('FullName');
if (nameField) {
console.log(nameField.Value);
nameField.Value = 'Bob Sample';
}Alanları Düzleştirme
Her alan tipinin Flatten() yöntemi, mevcut görünümünü sayfanın statik içeriğine kaydeder ve AcroForm’den kaldırır — Annotation.Flatten()‘in açıklamalar için sağladığı aynı kalıcı, etkileşimsiz etki.
const tb = form.AddTextField({
page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();İpuçları ve En İyi Uygulamalar
- Doğrudan
Add*()çağrısı tarafından döndürülen alan tanıtıcısını veyaForm.Get()ile yeni alınan bir tanıtıcıyı değiştirin — eski bir referans başka yerlerde yapılan değişiklikleri görmez. Form.RemoveField(), birFieldtanıtıcısı ya da alan adı dizesi alabilir.- Alan değerlerini toplu olarak değiştirdikten sonra
Form.GenerateAppearances()‘ı çağırın, böylece her alanın ekrandaki görünümüValueile senkronize kalır. - Kombinasyon kutuları ve liste kutuları seçilen
exportdeğerini/V‘de saklar;displaymetni, oluşturulan görünümün gösterdiği şeydir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
Sayfada Form.AddTextField() ile eklenen alan görünmüyor | rect koordinatları hedef sayfanın boyutlarının dışına düşüyor | Dikdörtgenin sayfanın sınırları içinde olduğundan emin olun |
Flatten() sonrası alan hâlâ etkileşimli görünüyor | Flatten(), Add*() / Form.Get() döndürülen tutamağın yerine bir kopya üzerinde çağrıldı | Formdan doğrudan elde edilen nesne üzerinde Flatten() çağırın |
| Alan değeri değişikliği ekranda görünmüyor | Değer değiştikten sonra alanın görünümü yeniden oluşturulmadı | Form.GenerateAppearances()‘ı çağırın, ya da alanın kendi GenerateAppearance()‘i |
FAQ
Bir alanı oluşturduktan sonra değerini nasıl okur ya da değiştiririm?
Bunu Form.Get('fieldName') ile bulun (veya Add*() çağrısının döndürdüğü tutamağı kullanın) ve Value özelliğini doğrudan okuyun ya da atayın.
Form katmanı hangi alan tiplerini destekliyor?
Metin alanları, onay kutuları, radyo grupları, kombinasyon kutuları, liste kutuları ve itme düğmeleri, Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() ve Form.AddPushButton() aracılığıyla.
Bir alanı nasıl kaldırırım?
Alanın tutamağını ya da adını kullanarak Form.RemoveField() çağırın.
Bir form alanı kalıcı ve düzenlenemez hâle nasıl getirilir?
Alan tutamacı üzerinde Flatten() çağırın — ek açıklamalar için kullanılan aynı desen — bu, mevcut görünümünü sayfaya yerleştirir ve onu AcroForm üzerinden kaldırır.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Form | AcroForm facade, doc.Form aracılığıyla erişilen |
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton() | Uygun türde bir alan oluşturun |
Form.Fields | Belgedeki her Field, bir dizi olarak |
Form.Get() | Tam nitelikli adıyla bir alanı ara |
Form.RemoveField() | Bir alanı tutamaç ya da ad ile kaldır |
Form.GenerateAppearances() | Her alanın ekrandaki görünümünü yeniden oluştur |
TextField / CheckboxField / ChoiceField / ButtonField / RadioField | Tiplenmiş alan, Value, ReadOnly, Required paylaşımını yönetir |
Page.AddTextField() / Page.AddCheckbox() | Sayfada doğrudan bir alan oluştur |