الإصدار 0.6.0 · لغة .pdfl وأداة pdfl

قائمة فحص الـ PDF عندك، شيفرةً تُنفَّذ.

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

‏profiles/offset.pdfl — ملف تعريف للفحص قبل طباعة الأوفست
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(", ")}"
  }
}
134
دالة موثّقة
7
فضاءات أسماء
12
أمرًا في الأداة
8
لغات للتوثيق

سبعة فضاءات أسماء، ولغة واحدة

كل فضاء أسماء يغطّي صنفًا من المشكلات، ولا تستعمل إلا ما تحتاجه: النصّ الذي لا يمسّ codes:: لا يدفع كلفة مسح الصفحات.

prepress:: 30 دالة

ما قبل الطباعة

تغطية الحبر الكلية بدقة، والفصل اللوني، والألوان الخاصة، والأسود الغني، والخطوط الشعرية، واستبدال الخطوط، وأصغر مقاس مقروء، والأُطر وهامش القص. ما كانت اللوحة ستكشفه لك — قبل اللوحة.

text:: 25 دالة

النص

استخراج وتوحيد وبحث بالتعابير النمطية، والتحقّق ممّا هو موجود فعلًا في الملف، بما في ذلك كشف البيانات الشخصية.

struct:: 23 دالة

البنية

الملف نفسه: البيانات الوصفية، و‏XMP، والكائنات الداخلية، والتعمية والصلاحيات، والبصمات. يجيب عمّا إذا كان الـ PDF هو ما يدّعيه.

fix:: 19 عملية

التسوية

الأُطر، ودوران الصفحات وترتيبها، والعلامات المائية، والدمج والتقسيم، والتحسين. يكتب ملفًا جديدًا، ولا يمسّ الأصل أبدًا.

visual:: 16 دالة

الصور

الدقة الفعلية، والجودة، والبصمة الإدراكية، ومقارنة SSIM بين نسختين. يلتقط الشعار منخفض الدقة الذي تجيزه العين عند عرض 100%.

codes:: 13 دالة

الرموز الشريطية

يكشف ويفكّ ترميز EAN و‏UPC و‏Code 128/39 و‏ITF ورمز الاستجابة السريعة و‏Data Matrix و‏Aztec و‏PDF417، ثم يقابل المقروء بما يُفترض وجوده.

data:: 8 دوال

بيانات خارجية

يقابل محتوى المستند بمسارد وبيانات وجداول بحث من عندك: أرقام التشغيلات، ورموز الأصناف، والمصطلحات المعتمدة.

رموز خروج، لا لقطات شاشة

كل أمر تحقّق يتبع الاصطلاح نفسه: 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 المطبوع ويقابله ببيانات الإنتاج.

اشترك في PDFLang

الترخيص لكل جهاز: يعرّف pdfl fingerprint الجهاز، ويفعّله pdfl license. البرنامج نفسه على محطة المشغّل وعلى وكيل البناء.

استعراض الخطط