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?

שדות טקסט, תיבות סימון, קבוצות רדיו, תיבות משולבות, תיבות רשימה, וכפתורי דחיפה, באמצעות Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox(), ו-Form.AddPushButton().

איך להסיר שדה?

הפעל את Form.RemoveField() עם המזהה של השדה או שמו.

איך הופך שדה טופס לקבוע ובלתי ניתן לעריכה?

הפעל את Flatten() על ידית השדה — אותו דפוס המשמש להערות — שמטביע את המראה הנוכחי שלו בעמוד ומסיר אותו מה-AcroForm.


API Reference סיכום

מחלקה/מתודהתיאור
Formממשק AcroForm, נגיש דרך 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()צור שדה ישירות בעמוד

ראה גם

 עברית