กรอกแบบฟอร์ม PDF

แบบฟอร์ม PDF มักใช้เพื่อรวบรวมข้อมูลและสารสนเทศ ตัวอย่างเช่น แบบสอบถามมักออกแบบมาเพื่อรวบรวมคำตอบสำหรับวัตถุประสงค์ในการสำรวจ คุณสามารถกรอก แก้ไข ปรับเปลี่ยนแบบฟอร์ม PDF ใน C# โดยทางโปรแกรม ขณะที่เราโต้ตอบกับแบบฟอร์ม PDF ที่กรอกได้แบบต่างๆ ในโลกดิจิทัลปัจจุบัน เมื่อพิจารณาขอบเขตขนาดใหญ่และความสำคัญของรูปแบบ PDF แล้ว Aspose.PDF for .NET API จึงรองรับคุณสมบัติมากมายในการทำงานกับรูปแบบ PDF ให้เราสำรวจกรณีการใช้งานต่อไปนี้โดยใช้ภาษา C# ในบทความนี้:

สร้างแบบฟอร์ม PDF ที่กรอกได้โดยใช้ C# โดยทางโปรแกรม

คุณสามารถสร้างแบบฟอร์ม PDF ที่กรอกได้ตั้งแต่เริ่มต้นโดยใช้ Aspose.PDF for .NET API ที่นี่เราจะพิจารณาตัวอย่างพื้นฐานของการเพิ่มสองอินสแตนซ์ TextBoxField และ RadioButton อย่างไรก็ตาม TextBoxField หนึ่งเป็นแบบบรรทัดเดียวในขณะที่อีกอันหนึ่งเป็นแบบหลายบรรทัด ด้านล่างนี้เป็นขั้นตอนในการสร้างแบบฟอร์มในเอกสาร PDF:

  1. สร้างอินสแตนซ์ของคลาส Document
  2. เพิ่มหน้าว่างในเอกสาร PDF
  3. เพิ่มฟิลด์ TextBox ในแบบฟอร์ม
  4. กำหนดคุณสมบัติต่าง ๆ ของฟิลด์ เช่น Font, Border เป็นต้น
  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);

//เพิ่ม Radiobuttons ที่พิกัดตำแหน่งเฉพาะใน 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 for .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 ในสตรีม
  • ทำงานกับแบบฟอร์ม
  • บันทึกไฟล์โดยไม่มีพารามิเตอร์ใดๆ

ข้อมูลโค้ด C# ต่อไปนี้อธิบายวิธีการรักษาสิทธิ์เพิ่มเติมของรูปแบบ PDF:

// อ่านรูปแบบ PDF ต้นทางด้วย FileAccess of Read and Write
// เราต้องการสิทธิ์ 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";
    }
}
// บันทึกเอกสารที่อัปเดตในบันทึก FileStream
pdfDocument.Save();
// ปิดวัตถุ File Stream
fs.Close();

ใช้ JavaScript ในรูปแบบ PDF โดยใช้ C#

คุณสามารถใช้ JavaScript ในฟิลด์รูปแบบ PDF ด้วย Aspose.PDF for .NET API ให้เราทำตามขั้นตอนด้านล่างเพื่อให้บรรลุข้อกำหนดนี้:

  1. เริ่มต้นอินสแตนซ์ของคลาส Document
  2. เพิ่ม TextBoxField ในหน้าแรกที่พิกัดหน้าเฉพาะ
  3. ตั้งค่าจาวาสคริปต์
  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 = เส้นขอบใหม่ ();
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 for .NET API API มีคุณสมบัติที่น่าตื่นเต้นมากมายสำหรับการทำงานกับไฟล์ต่างๆ แจ้งให้เราทราบข้อเสนอแนะหรือความคิดเห็นของคุณผ่าน ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย