تخطَّ إلى المحتوى

كيف تستعمل pdfl pixelcompare --viewer

يقول التقرير إن الصفحة ٣ تغيّرت بمقدار ٠٫٠٤٪. لكنه لا يقول إن كان ذلك شرطةً شاردة أم سعرًا خاطئًا. لمعرفة ذلك لا بد من النظر، و--viewer هو ما تنظر به.

Terminal window
pdfl pixelcompare cf_a.pdf cf_b.pdf --viewer pixelcompare/

يكتب هذا مجلدًا: ثلاث صور PNG لكل صفحة وملف index.html واحد. بلا خادم وبلا CDN وبلا شيء يُثبَّت — افتح الملف فحسب. اضغط المجلد ليفتحه أيضًا من يعتمد إعادة الطباعة، على جهاز لا يحمل أي برنامج.

العارض مفتوح على الصفحة ٣ من ٢٨٦: ثلاث لوحات جنبًا إلى جنب، وشريط صفحات في الأعلى، وشريط قطع يعبر الثلاث

ثلاث لوحات، على الصفحة نفسها دائمًا.

اللوحة ما تحمله
Original صفحة الملف الأول، كما هي
New صفحة الملف الثاني، كما هي
Difference كلتاهما، وقد رُسم فوقهما ما تغيّر

السطر العلوي هو الملخص: أي ملفين قورنا، و100 of 286 page(s) differ · worst 0.11%، وللصفحة التي أنت فيها page 3 · 0.04% of pixels differ.

زوج من الأشرطة — أحدهما قائم والآخر مضطجع — يعبر اللوحات الثلاث في الموضع نفسه، ويتحركان في الثلاث معًا. وهما يتبعان المؤشر: لا شيء يُمسك ولا شيء يُصوَّب إليه، والتقاطع حيث تكون الفأرة.

في Difference يقطع الشريطان. يظهر الملف الجديد يمين القائم وتحت المضطجع، ويظهر الأصل في ما عدا ذلك. وإن تركته، بقي المضطجع في الأعلى، فيصير القائم قطعًا رأسيًا بكامل الارتفاع. اسحب المضطجع إلى الأسفل حين يكون ما تطارده ممتدًا في شريط لا في عمود.

وفي Original وNew يصير الشريطان نفساهما مسطرتين، على العمود نفسه والسطر نفسه من الصفحة. فما يكشفه القطع يمكن العثور عليه في أيٍّ من الصفحتين السليمتين دون تقدير بالعين.

والموضعان نسبتان مئويتان من الصفحة لا من اللوحة، فيبقيان عند تغيير الصفحة وعند تغيير حجم النافذة.

فوق أي من اللوحات تُرسم الفروق في مكانها، ويدل اللون على نوعها:

اللون المعنى
أحمر حبر اختفى من الملف الجديد
أخضر حبر جديد فيه
أزرق الثقل نفسه بلون مختلف

وهكذا يبدو تغيير حرف واحد في الصفحة ٣ من مستند من ٢٨٦ صفحة:

لقطة قريبة من لوحة الفروق: كلمة outubro يعلوها أحمر وأخضر حيث صارت outubrb

صارت outubro هي outubrb. الأحمر هو الحرف الذي غادر، والأخضر هو الذي وصل. ولم يتحرك شيء آخر في الصفحة، وكان من يمرّر نافذتين متجاورتين سيقرأ فوقه مباشرة.

الشريط في الأعلى هو الصفحات، ومع كل واحدة مقدار ما اختلف منها.

ويُفتح على الصفحات المختلفة. في هذا المستند ١٠٠ من ٢٨٦؛ ويعيد All الـ ١٨٦ الباقية. وتتبع الأسهم و← → هذا الحصر، فتتخطى ما يخفيه الشريط بدل أن تقف عليه، والانتقال إلى العرض المحصور وأنت على صفحة لم تتغير ينقلك إلى أقرب صفحة تغيّرت.

وحين لا يختلف شيء البتة، يقول الزر ذلك ويبقى معطّلًا، بدل أن يحصر الشريط حتى يفرغ.

تكبّر العجلة حتى ٨ أضعاف، وتكبّر اللوحات الثلاث معًا حول النقطة التي تحت المؤشر — فيبقى ما كنت تنظر إليه في مكانه. ويتوقف التصغير عند الصفحة كاملة: فاللوحة مقاسة أصلًا لتسع الصفحة، ولا فائدة تحت ذلك.

وبالضغط على أي من زرَّي الفأرة مع التحريك تسحب الصفحة نفسها، في الثلاث معًا، وبسرعة المؤشر مهما كان التكبير. وبها تبلغ زاويةً بعد التكبير. ويظل الشريطان يتبعان المؤشر أثناء السحب، ويحتفظان بسماكتهما عند أي تكبير.

ويعيد Reset view التكبير والتحريك والشريطين إلى نقطة البداية، ويبقى معطّلًا ما دام لا شيء يُتراجَع عنه.

والانتقال إلى صفحة أخرى يبدأ من الصفحة كاملة من جديد. فالتكبير والتحريك يخصّان الصفحة التي ضُبطا عليها، ولو حُملا معك لوقعا حيث تصادف أن يكون في الصفحة التالية شيء.

يعرض العارض ما وجدته المقارنة، فالخيارات التي تغيّر المقارنة تغيّر ما تراه.

Terminal window
# انظر عن كثب. ١٥٠ dpi هو الافتراضي، و300 يرى أكثر ويستغرق أطول
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --dpi 300
# تجاهل الصفحات التي تغيّر منها أقل من ٠٫١٪ من مساحتها
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --max-diff 0.1
# جزء من المستند فقط
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --pages 1-10,42
# امتصاص ضجيج الرسم قبل المقارنة
pdfl pixelcompare a.pdf b.pdf --viewer diff/ --threshold 0.1 --blur 1

وهناك واحد آخر يستحق الفهم. الملف المُصدَّر من جديد من المصدر نفسه كثيرًا ما يستقر بفارق بكسل أو اثنين، ودون تعويض ذلك تُحتسب حافة كل حرف فرقًا. لذلك تبحث المقارنة عن إزاحة واحدة تشمل الصفحة كلها، وتذكرها حين تجدها:

page 3: 2.10% of the pixels differ, in 44 area(s) (aligned by 2, -1 px)

أوقف ذلك بـ --no-align حين يكون الموضع نفسه هو ما تفحصه.

في فصل سطر الأوامر كل الخيارات، ومخرجات التقدّم، وملاحظات السرعة. وهنا أيضًا مقالان: ما يكلّفه الملف الخطأ بعد أن يصعد إلى الآلة، ومتى تلجأ إلى compare بدلًا منه.

DigitalOceanشكرًا لـ DigitalOcean على استضافة هذا الموقع.