Điền vào mẫu PDF

Các biểu mẫu PDF thường được sử dụng để thu thập dữ liệu và thông tin. Ví dụ, Bảng câu hỏi thường được thiết kế để thu thập câu trả lời cho mục đích khảo sát. Bạn có thể điền, chỉnh sửa, sửa đổi các biểu mẫu PDF trong C# theo lập trình khi chúng ta tương tác với các biểu mẫu PDF có thể điền khác nhau trong thế giới kỹ thuật số ngày nay. Xem xét phạm vi rộng lớn và tầm quan trọng của các biểu mẫu PDF, API Aspose.PDF for .NET hỗ trợ nhiều tính năng để hoạt động với các biểu mẫu PDF. Hãy để chúng tôi khám phá các trường hợp sử dụng sau bằng ngôn ngữ C# trong bài viết này:

Tạo biểu mẫu PDF có thể điền bằng C# theo lập trình

Bạn có thể tạo biểu mẫu PDF có thể điền từ đầu bằng cách sử dụng Aspose.PDF for .NET API. Ở đây chúng ta sẽ xem xét ví dụ cơ bản về việc thêm hai đối tượng TextBoxField và RadioButton. Tuy nhiên, một trong những TextBoxField là một dòng trong khi một trong những TextBoxField là nhiều dòng. Dưới đây là các bước để tạo biểu mẫu trong tài liệu PDF:

  1. Tạo một thể hiện của lớp Document
  2. Thêm một trang trống trong tài liệu PDF
  3. Thêm trường TextBox vào biểu mẫu
  4. Đặt các thuộc tính khác nhau của các trường bao gồm Phông chữ, Đường viền, v.v.
  5. Thêm Nút Radio vào biểu mẫu
  6. Lưu tài liệu PDF

Đoạn mã sau cho biết cách tạo biểu mẫu trong PDF bằng 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);
// Thêm các trường biểu mẫu vào trang đầu tiên của tài liệu PDF            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Thêm Radiobuttons tại tọa độ vị trí cụ thể trong PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Đặt vị trí ở đây
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");

Ảnh chụp màn hình bên dưới hiển thị tài liệu PDF đầu ra chứa các trường biểu mẫu như được chỉ định trong đoạn mã trên:

biểu mẫu PDF

Điền, Sửa đổi hoặc Xóa các Trường Biểu mẫu trong PDF Hiện có bằng C#

Như chúng ta đã khám phá cách tạo biểu mẫu trong tài liệu PDF bằng C#, Aspose.PDF for .NET API cũng hỗ trợ làm việc với các biểu mẫu PDF hiện có. Hãy để chúng tôi thảo luận về các tính năng sau của API.

i) Điền vào Trường biểu mẫu trong tệp PDF hiện có bằng C# theo lập trình

Để điền vào các biểu mẫu PDF, chúng tôi sẽ tiếp tục với tài liệu PDF đã được tạo trong ví dụ trên. Dưới đây là các bước để điền vào các trường trong tài liệu PDF hiện có:

  1. Tải tài liệu PDF nguồn
  2. Nhận các trường Hộp văn bản và điền giá trị
  3. Nhận Trường nút radio và chọn một tùy chọn từ nhóm
  4. Lưu biểu mẫu PDF đã điền

Đoạn mã sau làm theo các bước sau và giải thích cách điền các trường trong tài liệu PDF bằng C#:

// mở tài liệu
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// Nhận các lĩnh vực
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Điền vào các giá trị của trường biểu mẫu
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Nhận trường nút radio
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Chỉ định chỉ mục của nút radio từ nhóm
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Lưu tài liệu cập nhật
pdfDocument.Save(dataDir);

Ảnh chụp màn hình bên dưới hiển thị các trường biểu mẫu đã điền của biểu mẫu PDF bằng C#:

PDF có thể điền

ii) Sửa đổi Trường Biểu mẫu trong Tài liệu PDF bằng C#

Đôi khi, bạn có thể cần thay đổi giá trị trong bất kỳ trường nào của biểu mẫu PDF. Thay đổi giá trị trong trường biểu mẫu là trường hợp sử dụng cơ bản có thể đạt được bằng các bước bên dưới:

  1. Tải biểu mẫu PDF
  2. Nhận một trường cụ thể bằng tên của nó
  3. Sửa đổi giá trị trường
  4. Lưu tài liệu PDF đã cập nhật

Đoạn mã sau cho biết cách thay đổi giá trị trong trường biểu mẫu của tài liệu PDF:

// mở tài liệu
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Nhận một lĩnh vực
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Sửa đổi giá trị trường
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Lưu tài liệu cập nhật
pdfDocument.Save(dataDir);

Điều đáng chú ý ở đây là bạn không chỉ có thể thay đổi giá trị của biểu mẫu mà các thuộc tính khác cũng có thể được cập nhật. Chẳng hạn, trường đã được đánh dấu là Chỉ đọc trong đoạn mã ở trên.

iii) Xóa Trường Biểu mẫu trong Tệp PDF Hiện có bằng C#

Chúng ta đã học về cách thêm và điền các trường biểu mẫu PDF. Bây giờ chúng ta hãy khám phá việc loại bỏ một trường biểu mẫu. Bạn cần làm theo các bước dưới đây:

  1. Tải tài liệu PDF
  2. Gọi phương thức Xóa với tên của trường biểu mẫu
  3. Lưu tài liệu PDF

Đoạn mã sau cho biết cách xóa trường biểu mẫu khỏi tệp PDF bằng C#:

// mở tài liệu
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Xóa một trường cụ thể theo tên
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Lưu tài liệu đã sửa đổi
pdfDocument.Save(dataDir);

Bảo toàn quyền mở rộng của các biểu mẫu PDF bằng C#

Biểu mẫu PDF có thể có các quyền mở rộng, còn được gọi là các tính năng mở rộng mà bạn muốn duy trì trong quá trình thao tác biểu mẫu. Bạn nên lưu nó dần dần trong khi làm theo các bước dưới đây:

  • Tải tài liệu PDF trong Luồng
  • Làm việc với biểu mẫu
  • Lưu tệp mà không có bất kỳ tham số nào

Đoạn mã C# sau đây giải thích cách duy trì các quyền mở rộng của biểu mẫu PDF:

// Đọc biểu mẫu PDF nguồn với FileAccess của Đọc và Viết.
// Chúng tôi cần quyền ReadWrite vì sau khi sửa đổi,
// Chúng tôi cần lưu nội dung đã cập nhật trong cùng một tài liệu/tệp.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Khởi tạo phiên bản Tài liệu
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Nhận giá trị từ tất cả các trường
foreach (Field formField in pdfDocument.Form)
{
    // Nếu tên đầy đủ của trường chứa A1, hãy thực hiện thao tác
    if (formField.FullName.Contains("nameBox1"))
    {
        // Trường biểu mẫu truyền dưới dạng TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // Sửa đổi giá trị trường
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Lưu tài liệu đã cập nhật trong lưu FileStream
pdfDocument.Save();
// Đóng đối tượng File Stream
fs.Close();

Sử dụng JavaScript trong Biểu mẫu PDF bằng C#

Bạn có thể sử dụng JavaScript trong các trường biểu mẫu PDF với Aspose.PDF for .NET API. Hãy để chúng tôi làm theo các bước dưới đây để đạt được yêu cầu này:

  1. Khởi tạo một thể hiện của lớp Tài liệu
  2. Thêm TextBoxField trên trang đầu tiên tại tọa độ trang cụ thể
  3. Thiết lập JavaScript
  4. Chỉ định hành động tài liệu
  5. Lưu tài liệu PDF

Đoạn mã sau cho biết cách thêm JavaScript ở dạng PDF bằng 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);
// Thêm trường vào tài liệu
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 lấy ngày và giờ hiện tại của hệ thống khi tài liệu PDF được mở và giá trị đó được điền vào hộp văn bản.

Sự kết luận

Trong bài viết này, chúng ta đã tìm hiểu các khía cạnh khác nhau khi làm việc với biểu mẫu trong tài liệu PDF. Tạo, điền hoặc chỉnh sửa biểu mẫu PDF rất đơn giản với Aspose.PDF for .NET API. API cung cấp nhiều tính năng thú vị như vậy để hoạt động với các tệp khác nhau. Hãy cho chúng tôi biết phản hồi hoặc nhận xét của bạn qua Diễn đàn hỗ trợ miễn phí.

Xem thêm