Document Comparison
THPDFDocComparison so sánh hai tài liệu THotPDF đã nạp và trả về một báo cáo JSON xác định
So sánh cấu trúc
cmStructural bắt đầu tại mỗi catalog tài liệu, theo các tham chiếu gián tiếp, và gán đường dẫn từ các khóa dictionary đã sắp xếp và chỉ mục mảng như $Catalog/Pages/Kids[0]/Contents
Giá trị vô hướng và byte stream đã giải mã được băm bằng SHA-256, nên các stream lớn được so sánh gia tăng mà không vật chất hóa một bản sao hoàn chỉnh khác
Đối tượng cùng đường dẫn nhưng chữ ký khác được báo cáo là objectChanged; chữ ký bằng nhau tại đường dẫn khác là objectMoved; đối tượng còn lại không khớp là objectInserted hoặc objectDeleted
Căn chỉnh trang
Trang có văn bản trích xuất được dùng một chữ ký văn bản ngữ nghĩa để căn chỉnh và dự phòng về một chữ ký cấu trúc khi văn bản rỗng hoặc không có sẵn
Một lượt dãy con tăng dài nhất giữ thứ tự trang qua các lần chèn và xóa trong khi báo cáo việc sắp xếp lại thực sự là pageMoved
Trang được căn chỉnh không khớp trở thành pageChanged, pageInserted, hoặc pageDeleted; siêu dữ liệu trang được ký độc lập với /Parent, /Contents, và /Resources để tránh nhiễu mã hóa font-subset
So sánh đã dựng
cmRenderedImage và cmFull dựng các trang chung tại DPI đã cấu hình và quét mỗi bitmap một lần để tính pixel đã thay đổi, tỷ lệ pixel đã thay đổi, lỗi màu tuyệt đối trung bình, delta màu tối đa, và một điểm độ chói giống SSIM toàn cục
THPDFRenderedCompareOptions chọn khác biệt RGB hoặc độ chói, dung sai màu theo pixel, độ tương đồng tối thiểu, tỷ lệ pixel đã thay đổi tối đa, kích thước tile, giữ vùng đã thay đổi, ngân sách pixel, và overlay PNG tùy chọn
Một trang chỉ tương đồng khi cả hai cổng tỷ lệ pixel đã thay đổi và độ tương đồng đều qua; số liệu được đánh giá ở độ chính xác đầy đủ và chỉ được làm tròn đến sáu chữ số thập phân cho báo cáo JSON xác định
Tile đã thay đổi được nối thành các vùng bốn liên thông xác định và được báo cáo với giới hạn không gian pixel, số pixel đã thay đổi, và delta màu tối đa
Khi heatmap được bật, pixel đã thay đổi được pha từ vàng đến đỏ trên tài liệu A và được lưu dưới dạng tệp kiểu page-000001-diff.png trong thư mục do caller chọn
Giới hạn và tính đầy đủ
THPDFStructuralCompareLimits kiểm soát giới hạn đối tượng, cạnh, trang, độ sâu, khác biệt, byte stream, byte giá trị, và byte đường dẫn
Nếu việc duyệt đạt một giới hạn, báo cáo bao gồm comparisonBudget, đặt comparisonComplete thành false, và không thể báo cáo các tài liệu là giống hệt
Công việc đã dựng được ước tính trước khi cấp phát và bị giới hạn theo trang và theo lần so sánh; lỗi dựng, cấp phát, hoặc overlay thêm renderBudget hoặc renderError, đặt renderComparisonComplete và comparisonComplete thành false, và thất bại an toàn
Chế độ so sánh
cmPageCountso sánh số trangcmPageTextcăn chỉnh và so sánh văn bản trang đã trích xuấtcmObjectCountgiữ giá trị selector hiện có của nó và giờ thực hiện so sánh đối tượng và trang cấu trúccmRenderedImagethực hiện so sánh đã dựng tri giác bằng các tùy chọn mặc định hoặc do caller chọncmFullkết hợp so sánh số trang, cấu trúc, và đã dựngcmStructuralthực hiện so sánh trang và đồ thị đối tượng mà không dựng
Định dạng kết quả
Báo cáo bao gồm số nguồn, đo lường duyệt, giới hạn cấu trúc và dựng đã chuẩn hóa, differenceCount, reportedDifferenceCount, differencesTruncated, comparisonComplete, identical, và một mảng differences
Chế độ đã dựng cũng trả về một mảng renderedPages với trạng thái trang, kích thước, số liệu, vùng đã thay đổi, và đường dẫn overlay tùy chọn, cùng số trang và pixel đã dựng tổng hợp
Mỗi khác biệt có thể bao gồm các giá trị pathA và pathB ổn định, chỉ mục trang, số đối tượng, một kiểu, và một chuỗi chi tiết
API liên quan
THPDFDocComparison · CompareWithOptions · THPDFRenderedCompareOptions · THPDFComparisonMode · HPDFDocCompareDocuments