مرجع HotPDF
تقارن THPDFDocComparison بين مستندَي THotPDF محمَّلَين وتُعيد تقرير JSON حتميًا
المقارنة البنيوية
يبدأ cmStructural عند كتالوج كل مستند، ويتبع المراجع غير المباشرة، ويُسنِد مسارات من مفاتيح القواميس المرتَّبة وفهارس المصفوفات مثل $Catalog/Pages/Kids[0]/Contents
تُجزَّأ (hash) القيم العددية وبايتات التدفق المفكوكة الترميز باستخدام SHA-256، لذا تُقارَن التدفقات الكبيرة تدريجيًا دون تجسيد نسخة كاملة أخرى
تُبلَّغ الكائنات ذات المسار نفسه لكن بتوقيعات مختلفة كـ objectChanged؛ أما التوقيعات المتساوية في مسارات مختلفة فتُصنَّف objectMoved؛ وتُصنَّف الكائنات غير المتطابقة المتبقية objectInserted أو objectDeleted
محاذاة الصفحات
تستخدم الصفحات ذات النص القابل للاستخراج توقيعًا نصيًا دلاليًا (semantic) للمحاذاة، وتتراجع إلى توقيع بنيوي عندما يكون النص فارغًا أو غير متوفر
تحافظ مرحلة أطول متتالية متزايدة (longest-increasing-subsequence) على ترتيب الصفحات عبر الإدراجات والحذوفات، مع الإبلاغ عن إعادة الترتيب الحقيقية كـ pageMoved
تصبح الصفحات المحاذاة غير المتطابقة pageChanged أو pageInserted أو pageDeleted؛ تُوقَّع البيانات الوصفية للصفحة بشكل مستقل عن /Parent و/Contents و/Resources لتجنّب ضوضاء ترميز المجموعات الفرعية للخطوط
محاذاة الصفحات
يرسم cmRenderedImage وcmFull الصفحات المشتركة بدقة DPI المُهيَّأة، ويمسح كل bitmap مرة واحدة لحساب البكسلات المتغيّرة ونسبة البكسلات المتغيّرة ومتوسط خطأ اللون المطلق وأقصى فرق لون، ودرجة سطوع شبيهة بـ SSIM على مستوى عام
تختار THPDFRenderedCompareOptions بين فرق RGB أو السطوع، وتفاوت اللون لكل بكسل، والحد الأدنى للتشابه، والحد الأقصى لنسبة البكسلات المتغيّرة، وحجم البلاطة (tile)، والاحتفاظ بالمناطق المتغيّرة، وميزانيات البكسلات، وتراكبات PNG الاختيارية
تستخدم الصفحات ذات النص القابل للاستخراج توقيعًا نصيًا دلاليًا (semantic) للمحاذاة، وتتراجع إلى توقيع بنيوي عندما يكون النص فارغًا أو غير متوفر
تستخدم الصفحات ذات النص القابل للاستخراج توقيعًا نصيًا دلاليًا (semantic) للمحاذاة، وتتراجع إلى توقيع بنيوي عندما يكون النص فارغًا أو غير متوفر
عند تفعيل الخرائط الحرارية (heatmaps)، تُمزَج البكسلات المتغيّرة من الأصفر إلى الأحمر فوق المستند A وتُحفَظ كملفات بنمط page-000001-diff.png في الدليل الذي يحدّده المستدعي
محاذاة الصفحات
تتحكم THPDFStructuralCompareLimits في حدود الكائنات والحواف والصفحات والعمق والفروقات وبايتات التدفق وبايتات القيم وبايتات المسار
إذا وصل الاجتياز إلى حد ما، يتضمّن التقرير comparisonBudget، ويضبط comparisonComplete على false، ولا يمكنه الإبلاغ عن أن المستندين متطابقان
يُقدَّر عمل الرسم قبل التخصيص ويُحدّ لكل صفحة ولكل مقارنة؛ تضيف إخفاقات الرسم أو التخصيص أو التراكب renderBudget أو renderError، وتضبط renderComparisonComplete وcomparisonComplete على false، وتفشل بأمان (fail closed)
محاذاة الصفحات
- تقارن
cmPageCountعدد الصفحات - تحاذي
cmPageTextنص الصفحة المُستخرَج وتقارنه - تحتفظ
cmObjectCountبقيمة مُحدِّدها الحالية، وتُجري الآن مقارنة بنيوية للكائنات والصفحات - تُجري
cmRenderedImageمقارنة إدراكية للصور المرسومة باستخدام خيارات افتراضية أو يحدّدها المستدعي - تجمع
cmFullبين مقارنة عدد الصفحات والمقارنة البنيوية ومقارنة الصور المرسومة - تُجري
cmStructuralمقارنة الصفحات ورسم الكائنات البياني دون رسم
محاذاة الصفحات
يتضمّن التقرير أعداد المصدر، وقياسات الاجتياز، والحدود البنيوية وحدود الرسم المطبَّعة، وdifferenceCount وreportedDifferenceCount وdifferencesTruncated وcomparisonComplete وidentical، ومصفوفة differences
تُعيد أوضاع الرسم أيضًا مصفوفة renderedPages تحتوي على حالة الصفحة وأبعادها ومقاييسها والمناطق المتغيّرة ومسارات التراكب الاختيارية، بالإضافة إلى إجمالي عدد الصفحات والبكسلات المرسومة
يمكن أن يتضمّن كل فرق قيمتَي pathA وpathB ثابتتَين، وفهارس الصفحات، وأرقام الكائنات، ونوعًا، وسلسلة تفصيل
محاذاة الصفحات
THPDFDocComparison · CompareWithOptions · THPDFRenderedCompareOptions · THPDFComparisonMode · HPDFDocCompareDocuments