الإصدار 0.6.0 · لغة .pdfl وأداة pdfl
يستبدل PDFLang القائمة التي يتابعها أحدهم على الشاشة بنصّ برمجي خاضع لإدارة الإصدارات: تغطية الحبر، وتضمين الخطوط، والبنود الإلزامية، والرموز الشريطية، والبيانات الشخصية — تُعلَن مرة واحدة، وتُفحص في كل ملف، في الطرفية أو في خط التكامل المستمر.
profile "offset-magazine" { const TAC_LIMIT = 300% const MIN_DPI = 300 check "Ink coverage" tags: ["prepress"] { doc.pages.each { |page| tac = prepress::calculate_exact_tac(page.number) assert tac <= TAC_LIMIT, "page #{page.number}: #{tac}% ink" } } check "Fonts" tags: ["fonts"] { loose = prepress::detect_text_substitution() assert loose.length == 0, "fonts not embedded: #{loose.join(", ")}" } }
كل فضاء أسماء يغطّي صنفًا من المشكلات، ولا تستعمل إلا ما تحتاجه: النصّ الذي لا يمسّ codes:: لا يدفع كلفة مسح الصفحات.
تغطية الحبر الكلية بدقة، والفصل اللوني، والألوان الخاصة، والأسود الغني، والخطوط الشعرية، واستبدال الخطوط، وأصغر مقاس مقروء، والأُطر وهامش القص. ما كانت اللوحة ستكشفه لك — قبل اللوحة.
استخراج وتوحيد وبحث بالتعابير النمطية، والتحقّق ممّا هو موجود فعلًا في الملف، بما في ذلك كشف البيانات الشخصية.
الملف نفسه: البيانات الوصفية، وXMP، والكائنات الداخلية، والتعمية والصلاحيات، والبصمات. يجيب عمّا إذا كان الـ PDF هو ما يدّعيه.
الأُطر، ودوران الصفحات وترتيبها، والعلامات المائية، والدمج والتقسيم، والتحسين. يكتب ملفًا جديدًا، ولا يمسّ الأصل أبدًا.
الدقة الفعلية، والجودة، والبصمة الإدراكية، ومقارنة SSIM بين نسختين. يلتقط الشعار منخفض الدقة الذي تجيزه العين عند عرض 100%.
يكشف ويفكّ ترميز EAN وUPC وCode 128/39 وITF ورمز الاستجابة السريعة وData Matrix وAztec وPDF417، ثم يقابل المقروء بما يُفترض وجوده.
يقابل محتوى المستند بمسارد وبيانات وجداول بحث من عندك: أرقام التشغيلات، ورموز الأصناف، والمصطلحات المعتمدة.
كل أمر تحقّق يتبع الاصطلاح نفسه: 0 اجتاز كل شيء، و1 تحذيرات فقط، و2 أخطاء تحقّق، و3 خطأ نحوي في النص البرمجي. ويصدر التقرير بصيغة JSON أو CSV أو HTML أو ملف PDF للتدقيق — واحد لخط الإنتاج وآخر للعميل.
# .github/workflows/preflight.yml - run: pdfl run profiles/offset.pdfl artwork.pdf \ --output html --output-file report.html \ --fail-on warning # 0 ok · 1 warnings · 2 validation errors · 3 syntax error $ pdfl run profiles/offset.pdfl artwork.pdf $ echo $? 2
يصل الملف من العميل، وعلى أحدهم فحص الحبر والخطوط والصور وهامش القص قبل الذهاب إلى اللوحة. والخطأ الذي يُكتشف بعدها يكلّف السحبة كاملة.
ملف تعريف لكل نوع ورق. يفحص pdfl watch ما يصل إلى المجلد المراقَب، ويعيد تقريرًا بصيغة HTML يمكن إرساله كما هو.
العقود واللوائح يجب أن تحمل بنودًا إلزامية، وألّا تسرّب بيانات شخصية، وأن تبقى بياناتها الوصفية متسقة عبر كل مراجعة.
تصير البنود تأكيدات برسائل فشل من صياغتك. ويعرض pdfl compare ما تغيّر بين مراجعتين للمستند نفسه.
تحتاج النشرة الداخلية إلى النصوص التي تفرضها الجهة التنظيمية، وإلى رمز تشغيلة يطابق التشغيلة المنتَجة فعلًا.
يتحقّق text:: من الصياغة الإلزامية، ويفكّ codes:: ترميز الـ Data Matrix المطبوع ويقابله ببيانات الإنتاج.
الترخيص لكل جهاز: يعرّف pdfl fingerprint الجهاز، ويفعّله pdfl license. البرنامج نفسه على محطة المشغّل وعلى وكيل البناء.