Forms
Forms
Trang này bao phủ việc tạo và quản lý các trường tương tác AcroForm. Form, được truy cập qua doc.Form, là lớp bề mặt cho mọi loại trường; mỗi phương thức Add*() tạo một trường gắn với một trang và một hình chữ nhật widget và trả về một handle có kiểu (TextField, CheckboxField, ChoiceField, ButtonField hoặc RadioField) mà chia sẻ các thuộc tính chung Field Value, ReadOnly, và Required.
Tạo Trường
Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox(), và các thành phần cùng cấp của chúng mỗi cái nhận một đối tượng tùy chọn chỉ tên page mục tiêu (bắt đầu từ 0), rect widget, một name trường, và các kiểu dáng như borderColor và 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() và Page.AddCheckbox() tạo các loại trường giống nhau trực tiếp trên một trang, mà không cần đặt tên doc.Form hoặc một số page trong đối tượng tùy chọn.
Đọc và Sửa Trường
Form.Fields là một mảng chứa mọi Field trên tài liệu; Form.Get() tra cứu một bằng tên đầy đủ của nó. Value của mỗi trường có thể được đọc hoặc gán lại, và ReadOnly / Required là các thuộc tính boolean đơn giản.
const nameField = doc.Form.Get('FullName');
if (nameField) {
console.log(nameField.Value);
nameField.Value = 'Bob Sample';
}Làm phẳng các trường
Mỗi phương thức Flatten() của loại trường đều ghép ngoại hình hiện tại của nó vào nội dung tĩnh của trang và loại bỏ nó khỏi AcroForm — hiệu ứng cố định, không tương tác mà Annotation.Flatten() có đối với chú thích.
const tb = form.AddTextField({
page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();Mẹo và Thực hành Tốt nhất
- Sửa đổi handle trường được trả về trực tiếp bởi cuộc gọi
Add*(), hoặc một handle được tra cứu mới bằngForm.Get()— một tham chiếu cũ không thấy các thay đổi được thực hiện ở nơi khác. Form.RemoveField()chấp nhận một handleFieldhoặc một chuỗi tên trường.- Gọi
Form.GenerateAppearances()sau khi thay đổi giá trị trường hàng loạt để ngoại hình trên màn hình của mỗi trường luôn đồng bộ vớiValuecủa nó. - Các hộp combo và hộp danh sách lưu giá trị
exportđã chọn vào/V; văn bảndisplaylà những gì hiển thị trong ngoại hình được tạo.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
Trường được thêm bằng Form.AddTextField() không hiển thị trên trang | Các tọa độ rect nằm ngoài kích thước của trang đích | Xác nhận hình chữ nhật nằm trong giới hạn của trang |
Trường vẫn hiển thị là tương tác sau Flatten() | Flatten() đã được gọi trên một bản sao thay vì handle Add*() / Form.Get() được trả về | Gọi Flatten() trên đối tượng lấy trực tiếp từ biểu mẫu |
| Thay đổi giá trị trường không hiển thị trên màn hình | Giao diện của trường không được tạo lại sau khi giá trị thay đổi | Gọi Form.GenerateAppearances(), hoặc GenerateAppearance() riêng của trường |
FAQ
Làm sao đọc hoặc thay đổi giá trị của một trường sau khi đã tạo?
Tìm nó bằng Form.Get('fieldName') (hoặc sử dụng handle mà cuộc gọi Add*() trả về) và đọc hoặc gán trực tiếp thuộc tính Value của nó.
Facade Form hỗ trợ những loại trường nào?
Các trường văn bản, ô kiểm, nhóm nút radio, hộp combo, hộp danh sách và nút nhấn, thông qua Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() và Form.AddPushButton().
Làm sao để xóa một trường?
Gọi Form.RemoveField() với handle của trường hoặc tên của nó.
Làm thế nào để một trường biểu mẫu trở thành cố định và không thể chỉnh sửa?
Gọi Flatten() trên trình quản lý trường — cùng mẫu được dùng cho chú thích — mà nhúng giao diện hiện tại của nó vào trang và loại bỏ nó khỏi AcroForm.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
Form | AcroForm facade, tiếp cận qua doc.Form |
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton() | Tạo một trường có kiểu tương ứng |
Form.Fields | Mỗi Field trong tài liệu, dưới dạng mảng |
Form.Get() | Tra cứu một trường bằng tên đầy đủ của nó |
Form.RemoveField() | Xóa một trường bằng handle hoặc tên |
Form.GenerateAppearances() | Tái tạo giao diện trên màn hình cho mọi trường |
TextField / CheckboxField / ChoiceField / ButtonField / RadioField | Trường nhập liệu xử lý việc chia sẻ Value, ReadOnly, Required |
Page.AddTextField() / Page.AddCheckbox() | Tạo một trường trực tiếp trên trang |