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ı veya Form.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(), bir Field tanı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ü Value ile senkronize kalır.
  • Kombinasyon kutuları ve liste kutuları seçilen export değerini /V‘de saklar; display metni, oluşturulan görünümün gösterdiği şeydir.

Yaygın Sorunlar

SorunNedenDüzeltme
Sayfada Form.AddTextField() ile eklenen alan görünmüyorrect koordinatları hedef sayfanın boyutlarının dışına düşüyorDikdörtgenin sayfanın sınırları içinde olduğundan emin olun
Flatten() sonrası alan hâlâ etkileşimli görünüyorFlatten(), 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üyorDeğ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öntemAçıklama
FormAcroForm 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.FieldsBelgedeki 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 / RadioFieldTiplenmiş alan, Value, ReadOnly, Required paylaşımını yönetir
Page.AddTextField() / Page.AddCheckbox()Sayfada doğrudan bir alan oluştur

Ayrıca Bakınız

 Türkçe