Điền vào biểu mẫu PDF Java

Trong thời hiện đại này, rất nhiều dữ liệu được thu thập bằng cách sử dụng các biểu mẫu và các biểu mẫu PDF có thể điền được đáng được đề cập trong bối cảnh này. Chúng là một cách hiệu quả để thu thập và sắp xếp thông tin. Hơn nữa, các biểu mẫu PDF có thể điền được hiện đang được các tổ chức khác nhau sử dụng làm tiêu chuẩn. Chẳng hạn, một số tòa án hoặc công ty mua sắm có thể sử dụng hiệu quả các biểu mẫu PDF có thể điền được để chuẩn hóa thủ tục của họ. Để tạo các ứng dụng như vậy, API Aspose.PDF for Java là API phù hợp nhất. Tò mò muốn biết tại sao? Hãy để chúng tôi khám phá các trường hợp sử dụng sau khi chúng tôi sẽ làm việc với các biểu mẫu PDF theo chương trình.

Cài đặt

Bạn có thể đi tới phần Bản phát hành mới nơi bạn có thể định cấu hình API để làm phong phú các ứng dụng Java của mình và cho phép chúng xử lý các tài liệu PDF hoặc bạn có thể xác định phần phụ thuộc trong ứng dụng Maven của mình như sau:

Kho:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

phụ thuộc:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

Sau khi định cấu hình thành công API, chúng ta hãy chuyển sang các trường hợp sử dụng sau:

Tạo biểu mẫu PDF có thể điền bằng Java

Bạn có thể tạo biểu mẫu PDF có thể điền trong các ứng dụng Java bằng cách thực hiện theo các bước bên dưới:

  1. Tạo một tệp PDF với một trang trống
  2. Thêm trường TextBox và trường RadioButton trên trang
  3. Lưu tệp PDF đầu ra

Đoạn mã dưới đây cho thấy cách tạo biểu mẫu PDF có thể điền từ đầu bằng Java:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
com.aspose.pdf.Page page = pdfdoc.getPages().add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770));
nameBox.setPartialName("nameBox1");
nameBox.getDefaultAppearance().setFontSize(10);
nameBox.setMultiline(true);
com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox);
nameBorder.setWidth(1);
nameBox.setBorder(nameBorder);
nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738));
mrnBox.setPartialName("Box1");
mrnBox.getDefaultAppearance().setFontSize(10);
com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox);
mrnBorder.setWidth(1);
mrnBox.setBorder(mrnBorder);
mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
mrnBox.setColor(com.aspose.pdf.Color.fromRgb(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.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Thêm Radiobuttons tại tọa độ vị trí cụ thể trong PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Đặt vị trí ở đây
table.setLeft(200);
table.setTop(300);
table.setColumnWidths("120");
page.getParagraphs().add(table);
com.aspose.pdf.Row r1 = table.getRows().add();
com.aspose.pdf.Row r2 = table.getRows().add();
com.aspose.pdf.Cell c1 = r1.getCells().add();
com.aspose.pdf.Cell c2 = r2.getCells().add();
com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page);
rf.setPartialName("radio");
pdfdoc.getForm().add(rf, 1);
com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField();
com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField();
opt1.setOptionName("Yes");
opt2.setOptionName("No");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
rf.add(opt1);
rf.add(opt2);
opt1.setBorder(new com.aspose.pdf.Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt1.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new com.aspose.pdf.TextFragment("Yes"));
opt2.setBorder(new com.aspose.pdf.Border(opt1));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new com.aspose.pdf.TextFragment("No"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
pdfdoc.save(dataDir + "Fillable_PDF_Form.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 Java

Chúng tôi đã học cách tạo một tệp PDF có thể điền mới từ đầu. Hãy để chúng tôi tiến hành các tình huống trong đó các tài liệu PDF hiện có được xử lý:

i) Điền vào Trường biểu mẫu trong tệp PDF hiện có bằng Java

Giống như chúng ta đã tạo biểu mẫu PDF trong ví dụ trên, chúng ta hãy tiếp tục với cùng một tài liệu và điền vào các trường biểu mẫu theo chương trình bằng Java. Bạn có thể điền vào biểu mẫu đã tạo bằng các bước dưới đây:

  1. Tải tập tin đầu vào
  2. Điền các giá trị vào trường Hộp văn bản
  3. Điền vào các trường RadioButton bằng cách chọn một tùy chọn
  4. Lưu biểu mẫu PDF

Đoạn mã dưới đây cho thấy cách điền vào các biểu mẫu có thể điền bằng Java:

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

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

// Nhận trường nút radio
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Chỉ định chỉ mục của nút radio từ nhóm
radioField.setSelected(1);

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

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

Đôi khi chúng ta cần chỉnh sửa hoặc cập nhật các giá trị trường ở dạng PDF. Bạn có thể dễ dàng chỉnh sửa biểu mẫu PDF có thể điền bằng các bước dưới đây:

  1. Khởi tạo PDF đầu vào
  2. Nhận một tham chiếu đến trường biểu mẫu theo tên của nó
  3. Chỉnh sửa biểu mẫu PDF
  4. Lưu biểu mẫu PDF đã chỉnh sửa

Đoạn mã dưới đây cho biết cách cập nhật hoặc chỉnh sửa tệp PDF có thể điền bằng Java:

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

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

Bạn có thể loại bỏ hoặc xóa một trường biểu mẫu một cách dễ dàng trong các ứng dụng Java của mình. Bạn có thể làm theo các bước dưới đây:

  1. Khởi tạo một biểu mẫu PDF
  2. Xóa trường biểu mẫu bằng tên của nó
  3. Lưu biểu mẫu PDF đã cập nhật

Đoạn mã bên dưới cho biết cách xóa trường biểu mẫu khỏi biểu mẫu PDF bằng Java:

// mở tài liệu
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Xóa một trường cụ thể theo tên
pdfDocument.getForm().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 Java

Bạn có thể nhận thấy rằng một số biểu mẫu PDF có quyền mở rộng. Chúng được sử dụng để tránh sửa đổi nội dung gốc và chỉ cho phép điền vào biểu mẫu. Các quyền mở rộng của tệp PDF có thể bị ảnh hưởng khi

Bạn điền vào một biểu mẫu như vậy và lưu nó vào các vị trí khác nhau của đĩa. Do đó, chúng ta cần lưu các tệp đó dần dần theo các bước dưới đây:

  1. Khởi tạo biểu mẫu PDF
  2. Điền vào các lĩnh vực
  3. Lưu tài liệu PDF đã điền

Đoạn mã dưới đây cho thấy cách duy trì các quyền mở rộng trong khi điền vào biểu mẫu PDF, sử dụng Java:

// Khởi tạo phiên bản Tài liệu
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Nhận giá trị từ tất cả các trường
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Nếu tên đầy đủ của trường chứa nameBox1, hãy thực hiện thao tác
    if (formField.getFullName().contains("nameBox1"))
    {
        // Trường biểu mẫu truyền dưới dạng TextBox
        TextBoxField textBoxField = (TextBoxField) formField;
        // Sửa đổi giá trị trường
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Lưu tài liệu đã cập nhật
pdfDocument.save();

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

Bạn có thể điền vào các trường biểu mẫu PDF có thể điền bằng Javascript với Aspose.PDF for Java. Bạn nên làm theo các bước sau:

  1. Tải tài liệu PDF
  2. Thêm một trường vào vị trí trang cụ thể
  3. Đặt JavaScript và hành động mở cho tài liệu Lưu tệp PDF

Đoạn mã sau cho biết cách sử dụng JavaScript trong các biểu mẫu PDF có thể điền:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
pdfdoc.getPages().add();
TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("Text Box");
//TextBoxField.Border = new Border();
com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField);
border.setWidth(2);
border.setDash(new com.aspose.pdf.Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.getDefaultAppearance().setFontSize(10);
textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN));
// Thêm trường vào tài liệu
pdfdoc.getForm().add(textBoxField, 1);
String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS));
pdfdoc.save(dataDir + "JS_Form.pdf");

Sự kết luận

Chúng ta đã học cách tạo các biểu mẫu PDF có thể điền, cũng như điền hoặc chỉnh sửa các trường biểu mẫu bằng môi trường Java. Ngoài ra, chúng tôi cũng đã khám phá việc duy trì các quyền mở rộng trong tài liệu PDF ngoài việc sử dụng JavaScript trên một tác vụ tài liệu PDF. Trong trường hợp có bất kỳ thắc mắc hoặc vấn đề nào, vui lòng liên hệ với chúng tôi tại Diễn đàn hỗ trợ miễn phí.

Xem thêm