Native headless belge karşılaştırması
HPDFHeadlessCompare, iki yüklenmiş native belgeyi HPDFCompareHeadlessDocuments ile karşılaştırır; Linux callback ABI'si, aynı uygulamayı type:compare ile hpdf_document_compare_json_v1 üzerinden açığa çıkarır
| Pascal modu | JSON modu | Karşılaştırılan içerik |
|---|---|---|
| hcmPageCount | pagecount | Sayfa-ağacı yaprak sayıları |
| hcmPageText | pagetext | Sayfa sayıları ve çıkarılmış Unicode metin |
| hcmObjectCount | objectcount | Sayfa sayıları ve fiziksel kullanımdaki çapraz-referans nesne sayıları |
| hcmRenderedImage | renderedimage | Sayfa sayıları, render edilmiş boyutlar ve native Cairo pikselleri |
| hcmStructural | structural | Sayfa sayıları ve normalize edilmiş katalog, bilgi ve ulaşılamayan nesne grafikleri |
| hcmFull | full | Sayfa ve nesne sayıları, normalize edilmiş grafikler, Unicode metin ve render edilmiş pikseller |
Yapısal eşdeğerlik
Yapısal karşılaştırma, indirect referansları çözer ve dictionary girişlerini sıralar, PDF adlarını ve literal veya onaltılık string gösterimlerini normalize eder ve içeriği SHA-256 ile hash etmeden önce sıradan stream filter'larını çözer
Nesne numaraları, serileştirme sırası ve sıradan stream sıkıştırması yapısal eşdeğerliği değiştirmez; terminal görüntü kodlamaları filter ve decode politikalarını korurken ulaşılamayan nesneler çoklu-küme olarak karşılaştırılır
Şifreleme dictionary'leri ve çapraz-referans veya object-stream depolama kapsayıcıları semantik yapıdan hariç tutulur; kimlikli AES R5/R6 içeriği, decrypt edildikten sonra karşılaştırılır; çıkarma izni uygulayarak
Yapısal bir fark, belge-düzeyi $Document yolunu bildirir; fiziksel nesne sayıları ayrı bir mod olarak kalır ve eşdeğer içerik farklı depolama düzenleri kullandığında farklı olabilir
Render edilmiş karşılaştırma
Her sayfa, seçilen DPI'da native Cairo aygıtıyla gerçekten render edilir; çözülmüş görüntü pikselleri beyaz üzerinde bileştirilir ve RGB veya parlaklıkta karşılaştırılır
Raporlar, boyutları, değişmiş piksel sayılarını, maksimum kanal delta'sını, ortalama mutlak hatayı, değişmiş piksel oranını ve benzerliği içerir; benzerlik 1 - meanAbsoluteError / 255'tir
Bir piksel, maksimum kanal delta'sı ColorTolerance'ı aştığında değişir; bir sayfa, yalnızca boyutlar eşleştiğinde ve hem benzerlik hem değişmiş piksel oranı yapılandırılmış eşikleri karşıladığında geçer
Rendering, native sayfa rendering'i ile aynı desteklenen yazı tiplerini, görüntü codec'lerini ve grafik semantiğini gerektirir; desteklenmeyen bir sayfa, özdeş bir rapor üretmek yerine karşılaştırmayı başarısız kılar
Sınırlı yürütme
Karşılaştırma options'ları, traversal'i, derinliği, nesneleri, çözülmüş stream'leri, metin hazırlığını, sonuç depolamasını ve render edilmiş pikselleri sınırlar; cancellation, traversal'e, metin çıkarmaya ve rendering'e ulaşır
Pascal karşılaştırması sırasında her iki belge örneğini canlı ve münhasır sahiplenilmiş tutun; onların orijinal içerik ve kaynak options'ları başarıda, hatada ve cancellation'da korunur
Linux ABI, yukarıdaki altı küçük harfli mod adını ve Pascal sınırlarıyla eşleşen katı options üyelerini; artı dpi, colorTolerance, minimumSimilarity, maxChangedPixelRatio ve colorSpace:rgb veya luminance kabul eder
ABI sonuçları, senkron callback yayınından önce tam olarak hazırlanır ve sınırlanır; aynı-handle çağrıları ve ters-sıra eşzamanlı çağrılar mevcut kararlı kilit sıralamasını kullanır
Rapor alanları · Semantik sözleşme karşılaştırması · Native Linux C ABI