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

Đị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