Điền form PDF API

Liệt kê trường của file PDF điền được, điền từ JSON với tiếng Việt đầy đủ dấu, làm phẳng (flatten) và điền hàng loạt nhiều bản ra file zip.

POSThttps://apibox.io.vn/v1/pdf-form

Tải lên file PDF có form (AcroForm), API liệt kê các trường: tên, loại (ô chữ, ô đánh dấu, nút chọn, danh sách thả xuống, danh sách chọn, chữ ký, nút bấm), giá trị hiện tại, các lựa chọn, độ dài tối đa và trang, vị trí của từng ô, kèm đối tượng template để điền sẵn. Gửi values dạng {"tên trường": giá trị} để điền: chữ, true / false cho ô đánh dấu, một lựa chọn (hoặc số thứ tự) cho nút chọn và danh sách thả xuống, mảng cho danh sách chọn nhiều.

Hình hiển thị của các trường được vẽ lại bằng font Be Vietnam Pro nhúng trong file, nên chữ có dấu hiển thị đúng trên mọi trình xem (font PDF chuẩn không có dấu tiếng Việt). flatten=true in giá trị vào trang và xóa các trường, cho bản cuối không sửa được. rows điền cùng một form cho từng đối tượng và trả file zip, đặt tên theo filename như don_{ho_ten}.

Tên trường không tồn tại được bỏ qua và báo lại (header x-unknown-fields, hoặc báo lỗi khi strict=true). Form chỉ có XFA và PDF scan không có trường thì không điền được; PDF có mật khẩu bị từ chối. File được xử lý trong bộ nhớ, không lưu lại.

Tham số

TênVị tríKiểuBắt buộcMặc định
filebodyfilecóFile PDF có form (multipart, body thô hoặc file_base64).
actionbody|querystringkhôngfieldsfields (liệt kê) hoặc fill (mặc định khi có values / rows).
valuesbodyobjectkhông{"tên trường": giá trị} để điền một bản.
rowsbodyarraykhôngĐiền hàng loạt: mảng các đối tượng giá trị, trả file zip (tối đa 200).
flattenbody|querybooleankhôngfalseIn giá trị vào trang và xóa các trường.
strictbody|querybooleankhôngfalseBáo lỗi khi có tên trường không tồn tại.
outputbody|querystringkhôngpdfpdf (file) hoặc json (base64 + danh sách trường đã điền).

Ví dụ

curl -X POST "https://apibox.io.vn/v1/pdf-form" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "0=@./my-file"

Kết quả trả về

{
  "pages": 1,
  "xfa": false,
  "field_count": 5,
  "fields": [
    {
      "name": "ho_ten",
      "type": "text",
      "read_only": false,
      "required": false,
      "value": null,
      "max_length": null,
      "multiline": false,
      "widgets": [
        {
          "page": 1,
          "x": 119.5,
          "y": 749.5,
          "width": 301,
          "height": 23
        }
      ]
    },
    {
      "name": "dong_y",
      "type": "checkbox",
      "read_only": false,
      "required": false,
      "value": false,
      "widgets": [
        {
          "page": 1,
          "x": 119.5,
          "y": 639.5,
          "width": 15,
          "height": 15
        }
      ]
    },
    {
      "name": "gioi_tinh",
      "type": "radio",
      "read_only": false,
      "required": false,
      "value": null,
      "options": [
        "Nam",
        "Nu"
      ],
      "widgets": [
        {
          "page": 1,
          "x": 119.5,
          "y": 609.5,
          "width": 15,
          "height": 15
        },
        {
          "page": 1,
          "x": 159.5,
          "y": 609.5,
          "width": 15,
          "height": 15
        }
      ]
    },
    {
      "name": "tinh",
      "type": "dropdown",
      "read_only": false,
      "required": false,
      "value": null,
      "options": [
        "Hà Nội",
        "TP. Hồ Chí Minh",
        "Đà Nẵng"
      ],
      "editable": false,
      "widgets": [
        {
          "page": 1,
          "x": 119.5,
          "y": 569.5,
          "width": 201,
          "height": 23
        }
      ]
    },
    {
      "…": "…"
    }
  ],
  "template": {
    "ho_ten": "",
    "dia_chi": "",
    "dong_y": false,
    "gioi_tinh": "",
    "tinh": ""
  },
  "note": "Fill with action=fill and values={\"field name\": \"value\"}. Coordinates are PDF points from the bottom-left corner."
}

Ứng dụng

  • Điền đơn ngân hàng, bảo hiểm, visa dạng PDF từ cơ sở dữ liệu
  • Tạo bản PDF phẳng của các biểu mẫu nội bộ đã duyệt
  • Điền hàng loạt giấy chứng nhận, tờ khai cho nhiều người
  • Xem tên các trường trước khi tự động hóa quy trình PDF

Hỏi đáp

Vì sao chữ tiếng Việt hiển thị đúng?

Hình hiển thị của trường được vẽ lại bằng font hỗ trợ tiếng Việt nhúng trong file (Be Vietnam Pro, giấy phép OFL) thay cho Helvetica chuẩn vốn không có dấu tiếng Việt.

Làm phẳng (flatten) là gì?

Giá trị đã điền được vẽ thẳng vào nội dung trang và các trường form bị xóa, nên không ai sửa được trên trình xem PDF nữa.

PDF nào không điền được?

PDF scan hoặc PDF phẳng không có trường form, form chỉ dùng XFA (LiveCycle) và file có mật khẩu.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →