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 moduJSON moduKarşılaştırılan içerik
hcmPageCountpagecountSayfa-ağacı yaprak sayıları
hcmPageTextpagetextSayfa sayıları ve çıkarılmış Unicode metin
hcmObjectCountobjectcountSayfa sayıları ve fiziksel kullanımdaki çapraz-referans nesne sayıları
hcmRenderedImagerenderedimageSayfa sayıları, render edilmiş boyutlar ve native Cairo pikselleri
hcmStructuralstructuralSayfa sayıları ve normalize edilmiş katalog, bilgi ve ulaşılamayan nesne grafikleri
hcmFullfullSayfa 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