מלא טופס PDF

טפסי PDF משמשים לעתים קרובות לאיסוף נתונים ומידע. לדוגמה, שאלונים נועדו בדרך כלל לאסוף תשובות למטרות סקר. אתה יכול למלא, לערוך, לשנות טפסי PDF ב-C# באופן תכנותי תוך כדי אינטראקציה עם טפסי PDF שונים הניתנים למילוי בעולם הדיגיטלי של היום. בהתחשב בהיקף העצום והחשיבות של טפסי PDF, API Aspose.PDF for .NET תומך בתכונות רבות לעבודה עם טפסי PDF. הבה נחקור את מקרי השימוש הבאים באמצעות שפת C# במאמר זה:

צור טפסי PDF הניתנים למילוי באמצעות C# באופן פרוגרמטי

אתה יכול ליצור טופס PDF שניתן למילוי מאפס באמצעות Aspose.PDF עבור .NET API. כאן נשקול את הדוגמה הבסיסית של הוספת שני מופעי TextBoxField ו-RadioButton. עם זאת, אחד מ-TextBoxField הוא שורה בודדת ואילו השני הוא רב-קו. להלן השלבים ליצירת טופס במסמך PDF:

  1. צור מופע של מחלקה Document
  2. הוסף עמוד ריק במסמך PDF
  3. הוסף שדה TextBox בטופס
  4. הגדר מאפיינים שונים של השדות כולל גופן, גבול וכו'.
  5. הוסף לחצן רדיו בטופס
  6. שמור מסמך PDF

קטע הקוד הבא מראה כיצד ליצור טופס ב-PDF באמצעות C#:

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// הוסף שדות טופס לעמוד הראשון של מסמך PDF            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//הוסף לחצני רדיו בקואורדינטות מיקום ספציפיות ב-PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//הגדר את המיקום כאן
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

צילום המסך שלהלן מציג מסמך פלט PDF המכיל שדות טופס כמפורט בקטע הקוד לעיל:

טופס PDF

מילוי, שנה או מחק שדות טופס ב-PDF קיים באמצעות C#

כפי שחקרנו יצירת טופס במסמך PDF באמצעות C#, Aspose.PDF עבור .NET API תומך בעבודה עם טפסי PDF קיימים גם כן. הבה נדון בתכונות הבאות של ה-API.

i) מלא שדה טופס בקובץ PDF קיים באמצעות C# באופן פרוגרמטי

למילוי טפסי ה-PDF נמשיך עם מסמך ה-PDF שנוצר בדוגמה למעלה. להלן השלבים למילוי שדות במסמך PDF קיים:

  1. טען מסמך PDF מקור
  2. קבל Textbox שדות וערכי מילוי
  3. קבל את שדה לחצן רדיו ובחר אפשרות מהקבוצה
  4. שמור טופס PDF מלא

קטע הקוד הבא מבצע את השלבים הבאים ומסביר כיצד למלא שדות במסמך PDF באמצעות C#:

// פתח את המסמך
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// קבל את השדות
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// מלא את ערכי שדות הטופס
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// קבל שדה לחצן בחירה
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// ציין את האינדקס של לחצן הבחירה מהקבוצה
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// שמור מסמך מעודכן
pdfDocument.Save(dataDir);

צילום המסך למטה מציג שדות מלאים של טופס PDF באמצעות C#:

PDF ניתן למילוי

ii) שנה שדה טופס במסמך PDF באמצעות C#

לפעמים ייתכן שיהיה עליך לשנות ערך בכל שדה של טופס PDF. שינוי ערך בשדה טופס הוא מקרה שימוש בסיסי שניתן להשיג באמצעות השלבים הבאים:

  1. טען את טופס ה-PDF
  2. קבל שדה ספציפי באמצעות השם שלו
  3. שנה את ערך השדה
  4. שמור את מסמך ה-PDF המעודכן

קטע הקוד הבא מראה כיצד לשנות ערך בשדה טופס של מסמך PDF:

// פתח את המסמך
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// קבל שדה
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// שנה את ערך השדה
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// שמור מסמך מעודכן
pdfDocument.Save(dataDir);

ראוי לציין כאן שאתה יכול לא רק לשנות את הערך של הטופס אלא גם מאפיינים אחרים יכולים להתעדכן. לדוגמה, השדה סומן כקריאה בלבד בקטע הקוד שלמעלה.

iii) מחק שדה טופס בקובץ PDF קיים באמצעות C#

כבר למדנו על הוספה ומילוי של שדות טופס PDF. כעת הבה נבדוק את הסרת שדה טופס. עליך לבצע את השלבים הבאים:

  1. טען את מסמך ה-PDF
  2. התקשר לשיטת Delete עם שם שדה הטופס
  3. שמור מסמך PDF

קטע הקוד הבא מראה כיצד למחוק שדה טופס מקובץ PDF באמצעות C#:

// פתח את המסמך
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// מחק שדה מסוים לפי שם
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// שמור מסמך שהשתנה
pdfDocument.Save(dataDir);

שמור על זכויות מורחבות של טפסי PDF באמצעות C#

לטופס PDF עשוי להיות זכויות מורחבות, המכונה גם תכונות מורחבות, שהיית רוצה לשמר במהלך מניפולציה בטפסים. עליך לשמור אותו בהדרגה תוך כדי ביצוע השלבים הבאים:

  • טען את מסמך ה-PDF ב-Stream
  • עבודה עם צורה
  • שמור את הקובץ ללא שום פרמטר

קטע הקוד הבא של C# מסביר כיצד לשמור על זכויות מורחבות של טופס PDF:

// קרא את טופס ה-PDF המקור עם FileAccess של קריאה וכתיבה.
// אנחנו צריכים הרשאת ReadWrite כי לאחר השינוי,
// עלינו לשמור את התוכן המעודכן באותו מסמך/קובץ.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// יצירת מופע מסמך
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// קבל ערכים מכל השדות
foreach (Field formField in pdfDocument.Form)
{
    // אם השם המלא של השדה מכיל A1, בצע את הפעולה
    if (formField.FullName.Contains("nameBox1"))
    {
        // שדה צור טופס כ-TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // שנה את ערך השדה
        textBoxField.Value = "Preserve Extended Features";
    }
}
// שמור את המסמך המעודכן ב- save FileStream
pdfDocument.Save();
// סגור את האובייקט File Stream
fs.Close();

השתמש ב-JavaScript בצורת PDF באמצעות C#

אתה יכול להשתמש ב-JavaScript בשדות טופס PDF עם Aspose.PDF עבור .NET API. תן לנו לבצע את השלבים הבאים כדי להשיג דרישה זו:

  1. התחל מופע של מחלקה Document
  2. הוסף TextBoxField בעמוד הראשון בקואורדינטות עמוד ספציפיות
  3. הגדר JavaScript
  4. ציין את פעולת המסמך
  5. שמור מסמך PDF

קטע הקוד הבא מראה כיצד להוסיף JavaScript בצורת PDF באמצעות C#:

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = new Border();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// הוסף שדה למסמך
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

ה-JavaScript מקבל את התאריך והשעה הנוכחיים של המערכת כאשר מסמך PDF נפתח והערך הזה מאוכלס בתיבת טקסט.

סיכום

במאמר זה, למדנו היבטים שונים של עבודה עם טופס במסמכי PDF. יצירה, מילוי או עריכה של טפסי PDF היא פשוטה עם Aspose.PDF עבור .NET API. ה-API מציע הרבה תכונות מרגשות כאלה לעבודה עם קבצים שונים. הודע לנו את המשוב או ההערות שלך באמצעות [פורום תמיכה חינם].

ראה גם