Content Stream Semantic Comparison
HPDFContentStream có thể chuẩn hóa nội dung PDF đã giải mã thành các sự kiện canonical có giới hạn và so sánh các sự kiện đó mà không coi các lựa chọn tuần tự hóa vô hại là thay đổi
Khai báo
function HPDFNormalizeContentStreamGraphicsState(
const Bytes: TBytes; out Canonical: TBytes;
out Statistics: THPDFContentSemanticStatistics;
NumberTolerance: Double = 1E-9;
MaxOperations: Integer = 1000000;
MaxCanonicalBytes: Int64 = 67108864
): boolean;
function HPDFCompareContentStreamsSemantic(
const Left, Right: TBytes;
out Info: THPDFContentSemanticCompareInfo;
NumberTolerance: Double = 1E-9;
MaxOperations: Integer = 1000000;
MaxCanonicalBytes: Int64 = 67108864
): boolean;
Chuẩn hóa
- Số được lượng tử hóa theo dung sai của caller và được phát ra với cách viết không phụ thuộc locale
- Chuỗi literal và hex so sánh theo giá trị byte đã giải mã, trong khi mảng giữ kiểu mục và thứ tự
- Setter graphics và text-state cập nhật một ảnh chụp hiệu lực và setter dư thừa không tạo sự kiện
qvàQduy trì một ngăn xếp trạng thái đầy đủ nhưng tự chúng không trở thành sự kiện- Các operator
cmliên tiếp được nhân theo thứ tự PDF, nên các phân tích ma trận tương đương so sánh bằng nhau - Mỗi operator được giữ mang ma trận hiệu lực, đường, màu, đồ họa ngoài, và trạng thái văn bản áp dụng tại điểm đó
- Khóa inline-image được chuẩn hóa bởi bộ token hóa và payload dùng danh tính SHA-256 để tránh mở rộng canonical-stream
Chẩn đoán và giới hạn
THPDFContentSemanticStatistics báo cáo thông tin token, phép toán, state-operation, redundant-state, normalized-event, độ sâu ngăn xếp tối đa, canonical-byte, error-offset, tính hợp lệ, và giới hạn. So sánh cũng báo cáo sự kiện chuẩn hóa khác nhau đầu tiên
Toán hạng dictionary lồng nhau sai định dạng, số lượng state-operator không hợp lệ, phạm vi graphics-state không khớp hoặc chưa đóng, toán hạng đuôi, tràn phép toán, và tràn canonical-byte thất bại an toàn và không bao giờ báo cáo tương đương
Hãy truyền byte nội dung đã giải mã. Giải mã bộ lọc stream và đối chiếu tên tài nguyên trên các dictionary tài nguyên khác nhau vẫn là trách nhiệm của caller