Forms

Forms

यह पृष्ठ इंटरैक्टिव AcroForm फ़ील्ड्स को बनाने और प्रबंधित करने को कवर करता है। Form, जो doc.Form के माध्यम से पहुँचा जाता है, प्रत्येक फ़ील्ड प्रकार के लिए फ़ेसाड है; प्रत्येक Add*() मेथड एक फ़ील्ड बनाता है जो पृष्ठ और विडजेट आयत के साथ जुड़ा होता है और एक टाइप्ड हैंडल (TextField, CheckboxField, ChoiceField, ButtonField, या RadioField) लौटाता है जो सामान्य Field प्रॉपर्टीज़ Value, ReadOnly, और Required को साझा करता है।


फ़ील्ड बनाना

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox(), और उनके सहोदर प्रत्येक एक विकल्प ऑब्जेक्ट लेते हैं जो लक्ष्य page (0-आधारित), विडजेट rect, एक फ़ील्ड name, और स्टाइलिंग जैसे borderColor और 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() और Page.AddCheckbox() पृष्ठ पर सीधे वही फ़ील्ड प्रकार बनाते हैं, विकल्प ऑब्जेक्ट में doc.Form या page संख्या का नाम दिए बिना।


फ़ील्ड पढ़ना और संशोधित करना

Form.Fields दस्तावेज़ पर प्रत्येक Field की एक एरे है; Form.Get() उसका पूर्ण-योग्य नाम द्वारा एक को खोजता है। प्रत्येक फ़ील्ड का Value पढ़ा या पुनः निर्धारित किया जा सकता है, और ReadOnly / Required साधारण बूलियन प्रॉपर्टीज़ हैं।

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

फ़ील्ड्स को फ़्लैट करना

हर फ़ील्ड प्रकार का Flatten() मेथड उसकी मौजूदा उपस्थिति को पेज की स्थिर सामग्री में बेक करता है और इसे AcroForm से हटा देता है — वही स्थायी, गैर-इंटरैक्टिव प्रभाव Annotation.Flatten() एनोटेशन के लिए रखता है।

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

टिप्स और सर्वोत्तम प्रथाएँ

  • फ़ील्ड हैंडल को संशोधित करें जो सीधे Add*() कॉल द्वारा लौटाया जाता है, या जिसे Form.Get() से नई बार खोजा गया हो — एक पुराना रेफ़रेंस अन्यत्र किए गए बदलावों को नहीं देखता।
  • Form.RemoveField() या तो एक Field हैंडल या फ़ील्ड नाम स्ट्रिंग स्वीकार करता है।
  • फ़ील्ड मानों को एक साथ बदलने के बाद Form.GenerateAppearances() को कॉल करें ताकि प्रत्येक फ़ील्ड की ऑन-स्क्रीन उपस्थिति उसके Value के साथ सिंक में बनी रहे।
  • कॉम्बो बॉक्स और लिस्ट बॉक्स चयनित export मान को /V में संग्रहीत करते हैं; display टेक्स्ट वह है जो जेनरेटेड उपस्थिति में दिखता है।

सामान्य समस्याएँ

समस्याकारणसमाधान
Form.AddTextField() के साथ जोड़ा गया फ़ील्ड पृष्ठ पर दिखाई नहीं देताrect निर्देशांक लक्ष्य पृष्ठ के आयामों के बाहर हैंपुष्टि करें कि आयत पृष्ठ की सीमाओं के भीतर है
Flatten() के बाद भी फ़ील्ड इंटरैक्टिव दिखता हैFlatten() को कॉपी पर कॉल किया गया, न कि हैंडल Add*() / Form.Get() पर जो लौटाया गयाफ़ॉर्म से सीधे प्राप्त ऑब्जेक्ट पर Flatten() को कॉल करें
फ़ील्ड मान में बदलाव स्क्रीन पर दिखाई नहीं देतामान बदलने के बाद फ़ील्ड की उपस्थिति पुनः उत्पन्न नहीं हुईForm.GenerateAppearances() को कॉल करें, या फ़ील्ड का अपना GenerateAppearance()

FAQ

फ़ील्ड को बनाने के बाद उसके मान को कैसे पढ़ूँ या बदलूँ?

इसे Form.Get('fieldName') से देखें (या उस हैंडल का उपयोग करें जो Add*() कॉल ने लौटाया) और सीधे इसका Value प्रॉपर्टी पढ़ें या असाइन करें।

फ़ॉर्म फ़ेसाड किन फ़ील्ड प्रकारों का समर्थन करता है?

टेक्स्ट फ़ील्ड, चेकबॉक्स, रेडियो ग्रुप, कॉम्बो बॉक्स, लिस्ट बॉक्स, और पुश बटन, Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox(), और Form.AddPushButton() के माध्यम से।

फ़ील्ड को कैसे हटाऊँ?

फ़ील्ड के हैंडल या उसके नाम में से किसी एक के साथ Form.RemoveField() को कॉल करें।

फ़ॉर्म फ़ील्ड को स्थायी और अपरिवर्तनीय कैसे बनाया जाता है?

फ़ील्ड हैंडल पर Flatten() कॉल करें — एनोटेशनों के लिए उपयोग किया गया वही पैटर्न — जो इसके वर्तमान रूप को पृष्ठ में बेक कर देता है और इसे AcroForm से हटा देता है।


API Reference सारांश

क्लास/मेथडविवरण
FormAcroForm फ़ासेड, doc.Form के माध्यम से पहुँचा गया
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()संबंधित प्रकार का फ़ील्ड बनाएं
Form.Fieldsदस्तावेज़ पर प्रत्येक Field, एक एरे के रूप में
Form.Get()उस फ़ील्ड को उसके पूर्ण-योग्य नाम से खोजें
Form.RemoveField()हैंडल या नाम से फ़ील्ड हटाएँ
Form.GenerateAppearances()हर फ़ील्ड के लिए ऑन-स्क्रीन दिखावट को पुनः उत्पन्न करें
TextField / CheckboxField / ChoiceField / ButtonField / RadioFieldटाइप किया गया फ़ील्ड Value, ReadOnly, Required के साझा करने को संभालता है
Page.AddTextField() / Page.AddCheckbox()पृष्ठ पर सीधे एक फ़ील्ड बनाएं

यह भी देखें

 हिन्दी