PDFEX giúp bóc tách và số hóa hồ sơ lưu trữ từ file PDF scan nhiều văn bản. Ứng dụng dùng OCR (Tesseract) để đọc nội dung, tự nhận diện ranh giới từng văn bản (theo quốc hiệu, số hiệu…), tách thành file PDF riêng và xuất bảng kê kèm báo cáo JSON/HTML.
| Mục | Mô tả | Ví dụ |
|---|---|---|
| Mã đơn vị | Tiền tố đặt tên file PDF đầu ra; tự điền khi chọn loại văn bản. | H38.141 |
| Loại văn bản | Quy tắc nhận diện số hiệu, loại VB. Tự nhận diện phù hợp hồ sơ hỗn hợp. | QĐ, TTr, CV… |
| Phông | Số phông 6 chữ số (tùy chọn), định dạng giống số thứ tự tài liệu; nằm giữa mã đơn vị và phiên bản. | 000068 |
| Phiên bản | Phiên bản bóc tách / lần số hóa. | v1 |
| Ngày scan | Ngày scan hồ sơ, định dạng yyyymmdd. |
20260607 |
| DPI | Độ phân giải khi chuyển PDF → ảnh để OCR. 200 là cân bằng tốc độ/chất lượng; 300 cho scan mờ. | 150 / 200 / 300 |
| OCR | Ngôn ngữ nhận dạng: Tiếng Việt hoặc English. | Việt Nam |
| Luồng | Số luồng OCR song song (1–4). Tăng nhanh hơn nhưng tốn RAM/CPU. | 2 |
Tên file xuất ra theo mẫu MãĐV_Loạivănbản_Phông_PhiênBản_NgàyScan_STT.pdf
(ví dụ có phông: H38.141_QĐ_000068_v1_20260607_000001.pdf;
bỏ trống phông: H38.141_QĐ_v1_20260607_000001.pdf).
STT (ví dụ 000001) là số thứ tự tài liệu trong hồ sơ — 6 chữ số, phần mềm tự đánh theo thứ tự văn bản tách được.
Sau khi hoàn tất, trong thư mục kết quả có:
Trên giao diện:
Bấm Loại VB trên thanh menu để xem danh sách profile nhận diện (mã, nhãn, tiền tố mặc định, mẫu số hiệu…). Chọn đúng loại giúp OCR nhận số hiệu và phân đoạn chính xác hơn.
Mở danh sách loại văn bảnLicense gắn với một máy. Hết hạn hoặc key không hợp lệ sẽ không phân tích được PDF mới.
PDFEX cần hai phần mềm bên ngoài (không nằm trong Python) để đọc PDF scan. Nếu thiếu hoặc cấu hình sai, phân tích vẫn chạy nhưng OCR trống — số hiệu, trích yếu rỗng, chỉ tách được 1 file lớn.
| Thư viện | Vai trò | File cần có |
|---|---|---|
| Poppler | Chuyển từng trang PDF thành ảnh để OCR. | pdftoppm.exe |
| Tesseract OCR | Nhận dạng chữ trên ảnh (Tiếng Việt / English). | tesseract.exe + tessdata\vie.traineddata, eng.traineddata |
tools\ (khuyến nghị)
Nếu bạn nhận bản zip đầy đủ, cạnh PDFEX.exe có thư mục:
PDFEX\
PDFEX.exe
tools\
poppler\Library\bin\pdftoppm.exe
tesseract\tesseract.exe
tesseract\tessdata\vie.traineddata
Giữ nguyên cấu trúc thư mục — không chỉ copy mỗi file .exe.
Không cần cài Poppler/Tesseract riêng trên Windows.
tools\Poppler
C:\poppler (hoặc thư mục khác).C:\poppler\Library\bin\pdftoppm.exe.Tesseract
C:\Program Files\Tesseract-OCR.C:\Program Files\Tesseract-OCR\tessdata\vie.traineddata và
eng.traineddata.
Khi cài ở ổ/ thư mục khác mặc định, tạo biến môi trường Windows (hoặc chạy lệnh trước khi mở PDFEX):
set PDFEX_POPPLER_PATH=D:\tools\poppler\Library\bin set PDFEX_TESSERACT_CMD=D:\tools\tesseract\tesseract.exe
Tesseract 5.x: nếu log báo Failed loading language / TESSDATA_PREFIX,
đặt thêm (trỏ thẳng vào thư mục tessdata, không phải thư mục cha):
set TESSDATA_PREFIX=C:\Program Files\Tesseract-OCR\tessdata
"C:\Program Files\Tesseract-OCR\tesseract.exe" --list-langs
— phải thấy vie và eng trong danh sách.
Khởi động lại PDFEX sau khi cài hoặc đổi biến môi trường.
| Triệu chứng | Gợi ý xử lý |
|---|---|
| OCR chậm hoặc treo | Giảm DPI hoặc số luồng; đóng ứng dụng khác; PDF quá lớn nên chia nhỏ. |
| Tách sai / thiếu văn bản | Thử loại VB cụ thể thay vì Tự nhận diện; tăng DPI lên 300; kiểm tra chất lượng scan. |
| Số hiệu / trích yếu trống; log OCR trống N trang | Xem mục Poppler & Tesseract: cài đủ thư viện, có vie.traineddata, đặt TESSDATA_PREFIX nếu cần. |
Log Failed loading language / TESSDATA_PREFIX |
Cài lại Tesseract và chọn ngôn ngữ Vietnamese; hoặc
TESSDATA_PREFIX=...\Tesseract-OCR\tessdata (thư mục tessdata, không phải thư mục cha). |
Log Lỗi Poppler / không render được trang |
Cài Poppler hoặc bổ sung tools\poppler\; đặt PDFEX_POPPLER_PATH trỏ tới thư mục chứa pdftoppm.exe. |
| Lỗi khi phân tích PDF | Kiểm tra thư mục tools\ cạnh EXE; xem Poppler & Tesseract; khởi động lại ứng dụng. |
| License hết hạn / không kích hoạt được key | Bấm biểu tượng chìa khóa → dán key mới (không dán lại key cũ). Key phải đúng mã máy hiển thị trong app. |
App không mở; lỗi Python.Runtime hoặc Could not load file or assembly / 0x80131515 |
Windows chặn file tải từ mạng (zip qua Zalo/Downloads). Giải nén đủ thư mục PDFEX\. Trước giải nén: zip → Thuộc tính → Unblock. Hoặc chạy unblock_portable.bat trong thư mục PDFEX rồi mở lại. |
| Cửa sổ trắng | Cài WebView2 Runtime. |
Chi tiết kỹ thuật dành cho người build/cài đặt: file CAIDAT.md trong gói nguồn.