Trích xuất dữ liệu từ PDF thế nào (cả PDF digital lẫn PDF scan)?
8 tháng 7, 2026 · 6 phút đọc
Để trích xuất dữ liệu từ PDF một cách đáng tin cậy, bạn cần hai bước: đọc nội dung từng trang (dù là PDF digital có text layer hay PDF scan chỉ là ảnh), rồi map nội dung đó vào các trường có tên — số hoá đơn, tổng tiền, thuế, line item — kèm confidence score cho từng giá trị. Copy-paste và các tool convert PDF sang Excel thông thường chỉ làm được bước thứ nhất, nên chúng vỡ ngay khi bảng kéo dài qua nhiều trang hoặc một vendor mới gửi layout khác.
PDF digital và PDF scan khác nhau thế nào?
PDF digital (còn gọi là PDF "native" hay "text-based") được xuất ra từ phần mềm — hệ thống kế toán, trình soạn thảo văn bản — và mang theo một text layer: các ký tự tồn tại dưới dạng chữ chọn được, copy được ngay trong file. PDF scan thì ngược lại: đó là một tấm ảnh chụp giấy tờ được bọc trong vỏ PDF. Bên trong không có chữ, chỉ có pixel, nên muốn trích xuất bất cứ thứ gì đều phải qua OCR — nhận diện ký tự quang học, bước biến pixel trở lại thành ký tự.
Đây là phần mà đa số bài hướng dẫn bỏ qua: có text layer không có nghĩa là dữ liệu đã được trích xuất. Bạn có thể copy toàn bộ chữ trong một hoá đơn digital mà vẫn không có cách nào, về mặt lập trình, biết con số nào là tổng tiền hoá đơn, con số nào là subtotal của một line item, hay trong năm cái ngày trên trang thì cái nào là hạn thanh toán. Cả hai loại PDF đều cần cùng một bước thứ hai — hiểu chữ nào thuộc về trường nào. PDF scan chỉ cần thêm một bước phía trước (nhận diện), mà các mô hình vision-language hiện đại xử lý luôn trong cùng một lượt đọc.
Vì sao "PDF sang Excel" bằng copy-paste hay tool convert thường vỡ?
Các tool convert thông thường map vị trí hiển thị sang ô trong bảng tính, và phép map đó rất mong manh. Một bảng line item có phần mô tả xuống dòng thành hai dòng sẽ biến thành hai hàng trong Excel, kéo số lượng và đơn giá trượt sang nhầm cột. Bảng kéo tiếp sang trang 2 sẽ mất hàng header, nên nửa sau của dữ liệu đến nơi mà không có nhãn. Và một bảng tính đã convert vẫn chưa phải dữ liệu có cấu trúc — vẫn phải có người dò bằng mắt xem tổng tiền, phân tách thuế, số hoá đơn nằm ở đâu trong đó.
Vấn đề sâu hơn là sự đa dạng layout: mỗi vendor trình bày hoá đơn một kiểu, nên công thức dọn dữ liệu bạn dựng cho PDF của nhà cung cấp này trở nên vô dụng với nhà cung cấp kế tiếp. Với một doanh nghiệp nhận PDF từ 30 vendor, "convert rồi sửa tay" nghĩa là 30 quy trình sửa khác nhau — thực chất vẫn là nhập liệu thủ công, chỉ thêm vài bước vòng vèo.
- Chữ xuống dòng trong ô line item tách một hàng thành nhiều hàng, làm lệch mọi cột phía sau.
- Bảng nhiều trang mất header ở các trang tiếp theo, giá trị đến nơi không kèm nhãn.
- Ô gộp (merged cell), con dấu, logo bị đọc nhầm thành nội dung bảng và làm bẩn kết quả.
- Kể cả convert sạch, bạn cũng chỉ nhận được một lưới chữ, không phải các trường dữ liệu — không có số hoá đơn, tổng tiền hay thuế suất nào được nhận diện.
Pipeline trích xuất dữ liệu PDF hoạt động thế nào?
Một pipeline hiện đại coi mỗi trang PDF như một ảnh tài liệu và đọc nó bằng mô hình vision-language — cùng một cách tiếp cận dù trang đó có text layer hay là bản scan thuần. Pipeline của Inferio (xây trên Claude Vision) đọc từng trang xuyên suốt các PDF đa trang, nên một hoá đơn 6 trang với bảng line item kéo dài qua trang 2–4 trả về thành một tài liệu duy nhất với một bộ trường hợp nhất, không phải bốn mảnh rời rạc.
Đầu ra là JSON có cấu trúc: các trường có tên — vendor, số hoá đơn, ngày phát hành, line item kèm số lượng và đơn giá, phân tách thuế, tổng tiền — mỗi trường mang confidence score riêng từ 0 đến 1. Trường nào dưới ngưỡng review (mặc định 0.75) được chuyển sang giao diện sửa lỗi human-in-the-loop thay vì chảy tiếp xuống hệ thống mà không ai kiểm tra; người review chỉ cần xác nhận hoặc sửa đúng những giá trị đó. Chính bước định tuyến này là thứ phân biệt một pipeline trích xuất có thể post thẳng vào sổ sách với một tool convert mà đầu ra phải dò lại từng dòng. Cùng một pipeline đọc được tài liệu tiếng Anh, tiếng Nhật và tiếng Việt mà không cần setup riêng cho từng ngôn ngữ.
Xử lý khối lượng lớn PDF — hàng trăm hoá đơn mỗi tháng — thế nào?
Ở khối lượng lớn, nút thắt không còn là độ chính xác trích xuất mà là workflow: không ai muốn upload 300 file PDF từng cái một rồi tải về 300 bảng tính. Mô hình batch là một lần upload hoặc một lời gọi REST API cho mỗi tài liệu, xử lý bất đồng bộ, và một signed webhook báo cho hệ thống của bạn khi kết quả có cấu trúc của từng tài liệu sẵn sàng — code của bạn không phải poll, và chữ ký webhook giúp xác minh payload thực sự đến từ dịch vụ trích xuất.
Nửa còn lại của bài toán khối lượng là bỏ hẳn bước xuất file. Dữ liệu hoá đơn đã trích xuất có thể sync thẳng vào phần mềm kế toán — Inferio kết nối freee và MoneyForward qua OAuth — hoặc vào ERP qua API, để "PDF sang Excel" trở thành "PDF sang bút toán đã ghi sổ" và Excel rời khỏi vòng lặp. Với doanh nghiệp tại Nhật, pipeline này còn gánh luôn phần tuân thủ: T-number trên hoá đơn hợp lệ được xác thực qua public API của Tổng cục Thuế Nhật (NTA), thuế tiêu dùng được phân loại vào hai mức 8% và 10%, và tài liệu được lưu trữ theo yêu cầu 7 năm của Electronic Bookkeeping Law.
Giải đáp nhanh
- PDF scan mờ, chất lượng thấp có đọc được không?
- Thường là được, trong giới hạn — mô hình vision-language đọc theo ngữ cảnh, nên nó thường suy ra được một ký tự nhoè từ phần chữ xung quanh giống cách con người đọc. Lưới an toàn là confidence score: giá trị nào mô hình không chắc sẽ có điểm dưới ngưỡng review 0.75 và được chuyển cho người review thay vì âm thầm lọt vào dữ liệu của bạn. Một bản scan thực sự không đọc nổi sẽ hiện ra dưới dạng nhiều trường confidence thấp, chứ không phải những con số sai nhưng trông tự tin.
- PDF nhiều trang và xử lý batch có được hỗ trợ không?
- Có. PDF đa trang (và TIFF đa trang) được đọc từng trang và trả về thành một tài liệu có cấu trúc duy nhất, nên bảng kéo dài qua nhiều trang vẫn là một bảng. Với batch, tài liệu được gửi qua dashboard hoặc REST API và xử lý bất đồng bộ, signed webhook báo cho hệ thống của bạn mỗi khi một kết quả hoàn tất — không phải thao tác tay từng file.
- Có cần convert PDF sang ảnh trước khi upload không?
- Không — PDF được nhận trực tiếp trong dashboard và qua API, bên cạnh ảnh JPG, PNG, WebP và TIFF đa trang. Một lưu ý: tool preview miễn phí công khai trên site này chỉ nhận file ảnh tối đa 8MB; xử lý PDF là tính năng của dashboard và API.
- Dữ liệu trích xuất ra có định dạng gì?
- JSON có cấu trúc: các trường có tên (vendor, số hoá đơn, ngày tháng, line item, phân tách thuế, tổng tiền), mỗi trường kèm confidence score riêng. Từ đó bạn có thể export, kéo qua REST API vào hệ thống của mình, hoặc sync thẳng sang freee hay MoneyForward mà không cần đụng tới bảng tính.