2025/08/18
Share
Phát triển phần mềm phát hiện điểm khác biệt của file PDF
Tổng quan dự án
Khách hàng có nhu cầu xác nhận không có sự khác biệt giữa file báo cáo PDF được xuất ra từ hệ thống mới sau khi chuyển đổi và file báo cáo PDF được xuất ra từ hệ thống cũ trước khi chuyển đổi. Dự án này nhằm mục đích xây dựng một phần mềm chuyên dụng có thể phát hiện sự khác biệt của các file PDF để đáp ứng nhu cầu đó.
Phần mềm này được trang bị tính năng so sánh sự khác biệt về nội dung, bố cục, và vị trí hiển thị giữa các file PDF, và có khả năng xuất báo cáo chi tiết dưới định dạng hình ảnh và HTML một cách trực quan dễ hiểu khi có sự khác biệt, giúp người dùng có thể dễ dàng phát hiện ra các điểm khác biệt.
Stack công nghệ và công cụ phát triển đã sử dụng
・Ngôn ngữ lập trình: PHP7.4
・Công cụ quản lý task: Backlog
Thách thức của khách hàng
Sau khi chuyển đổi hệ thống (migration), khách hàng cần phải kiểm tra tính toàn vẹn của các chức năng hiện có, đặc biệt là tính toàn vẹn của chức năng xuất báo cáo PDF.
Các vấn đề đang phát sinh như sau:
- Cần phải so sánh một số lượng lớn các file PDF được xuất ra từ hệ thống cũ và hệ thống mới.
- Có khả năng xảy ra sự sai lệch về vị trí hiển thị, khoảng cách, font chữ, v.v. ngay cả khi nội dung giống nhau.
- Việc so sánh thủ công tốn nhiều thời gian và dễ phát sinh sai sót.
Yêu cầu của khách hàng
- Có thể so sánh đồng thời hai hoặc nhiều file PDF của hệ thống cũ và hệ thống mới.
- Có thể phát hiện được những sự khác biệt sau:
- Sự khác biệt về nội dung văn bản (text).
- Sự khác biệt về vị trí hiển thị (vẫn phát hiện dù nội dung giống nhau nhưng bị lệch vị trí).
- Bố cục tổng thể (khoảng cách, lề, căn chỉnh, v.v.).
- Xuất báo cáo kết quả so sánh:
- Định dạng hình ảnh (đánh dấu (highlight) những chỗ khác biệt).
- Định dạng HTML (hiển thị nội dung PDF và đánh dấu (highlight) phần khác biệt).
- Giao diện đơn giản, dễ sử dụng và hoạt động độc lập (standalone) không cần kết nối internet.
Đề xuất và phương pháp tiếp cận của chúng tôi
Chúng tôi đã đề xuất phát triển một ứng dụng console (chạy bằng dòng lệnh) chuyên dụng để kiểm tra tính nhất quán của các file PDF.
Vì khách hàng là một công ty công nghệ thông tin, nên định dạng console dễ dàng tích hợp vào quy trình kiểm thử (test) và các xử lý tự động hoá, đồng thời cũng phù hợp với quy trình làm việc kỹ thuật (technical workflow) của họ.
Các phương pháp tiếp cận chính như sau:
- Tự động so sánh nội dung văn bản giữa các file PDF, đối chiếu theo từng đoạn và từng dòng.
- Phát hiện và đánh dấu là khác biệt ngay cả khi nội dung giống nhau nhưng vị trí hiển thị khác nhau.
- Xuất báo cáo trực quan:
- Tạo ra hình ảnh so sánh có đánh dấu (highlight) những điểm khác biệt.
- Tạo báo cáo HTML hiển thị nội dung PDF và đánh dấu (highlight) những điểm khác biệt.
- Nâng cao hiệu quả công việc xác minh bằng chức năng so sánh nhiều file PDF cùng một lúc.
- Nhờ giải pháp này, đội ngũ kỹ thuật và kiểm thử của khách hàng đã có thể thực hiện việc xác minh chuyển đổi cho các hệ thống quy mô lớn, đặc biệt là khi xử lý các báo cáo PDF phức tạp với số lượng lớn, một cách nhanh chóng và chính xác.
Related Case Studies