ما هو ملف XSL-FO؟
XSL-FO (XSL Formatting Objects) هي لغة أنماط فعالة لتنسيق مستندات XML. يتم التعبير عن دلالات الشكل المقيد للورق والطباعة بواسطة XSL-FO عندما تكون الأبعاد ثابتة. على عكس HTML ، الذي يمثل دلالات الشكل غير المحدود لنافذة المتصفح ذات الأبعاد المتغيرة. تستخدم مستندات XML المنسقة بواسطة XSL-FO في الغالب لإنشاء ملفات PDF. XSL (لغة ورقة الأنماط الموسعة) عبارة عن مجموعة من تقنيات W3C كاملة الميزات تهدف إلى تصميم تنسيق وتبادل مستندات XML وجزء XSL-FO من هذه اللغة. XSLT و XPath هي أيضًا أجزاء أخرى من XSL.
يُقترح تحويل مستندات XML أولاً إلى XSL-FO ، يعد PDF مثالاً على هذه المعايير. في ملف PDF ، يتم عرض النتائج باستخدام XSLTfirst ، ثم تنسيق XSL-FO. بهذه الطريقة ، يمكن تنسيق مستندات XML بشكل عشوائي. على الرغم من أن XSL-FO تستفيد من استخدام خصائص ورقة الأنماط المتتالية (CSS) وتوسيعها حيثما كان ذلك ضروريًا للتنسيق الحقيقي ، إلا أنها تضم توفير قوالب الصفحات التي تسمى الصفحة الرئيسية في مصطلحات XSL-FO. يوفر XSL-FO أيضًا تنسيقًا للمستندات المعقدة إلى حد ما ويدعم إنشاء الفهرس.
التاريخ والمفاهيم الأساسية
في يناير 2012 ، تم تحديث مسودة العمل الخاصة بـ XSL-FO في المرة الأخيرة ، وفي نوفمبر 2013 ، تم إغلاق مجموعة العمل الخاصة بها. تحدد ورقة أنماط XSL عرض فئة مستندات XML من خلال وصف كيفية تحويل مثيل من الفئة إلى مستند XML يستخدم مفردات التنسيق. XSL-FO هي لغة عرضية متكاملة ولا تحتوي على علامات دلالية تستخدم في HTML. علاوة على ذلك ، تخزن هذه اللغة جميع بيانات المستند داخل نفسها ، على عكس CSS الذي يغير الإعدادات الافتراضية لمستند HTML أو XML خارجي.
المعايير العامة لاستخدام XSL-FO هي أن المستخدم يكتب مستندًا بلغة XML بدلاً من الكتابة في FO. بعد ذلك ، يحدث تحويل XSLT. تحويل XSLT هذا مسؤول عن تحويل XML إلى XSL-FO. بمجرد إنشاء مستند XSL-FO ، يتم تسليمه بعد ذلك إلى تطبيق يسمى معالج FO. يتحمل معالجات FO مسؤولية تحويل هذا المستند إلى مستند قابل للقراءة بالإضافة إلى مستند قابل للطباعة. تعد ملفات PDF أو PS أمثلة على المخرجات الأكثر شيوعًا لـ XSL-FO. لكن هذا لا يعني أن معالج FO يمكنه فقط إنتاج هذين النوعين من التنسيق كإخراج. يمكن لبعض معالجات FO الإخراج في ملفات RTF أو حتى نافذة يمكن أن تظهر في واجهة المستخدم الرسومية للمستخدم ، وتعرض هذه النافذة تسلسل الصفحة ومحتوياتها.
يختلف مستند XSL-FO عن ملف PDF أو PS بمعنى أنه لا يحدد في النهاية تخطيط النص على صفحات مختلفة. ربما ، يقوم بتنسيق الصفحات وتحديد الأماكن لعرض المحتويات. علاوة على ذلك ، يقوم معالج FO بتنظيم النص داخل الحدود المحددة بواسطة مستند FO. تسمح هذه المواصفات لمعالجات FO المختلفة بالتصرف وفقًا للصفحات الناتجة التي تم إنشاؤها. مثال على هذا السلوك هو الواصلة ، يمكن لعدد قليل من معالجات FO وصل الكلمات لتوفير مساحة عند كسر السطر ، في حين أن بعض المعالجات لا تحدد هذا الخيار. يعتمد ذلك على المعالجات لاختيار خوارزميات الواصلة المختلفة التي تتوافق مع متطلباتهم. قد تكون خوارزميات الواصلة بسيطة جدًا أو ربما أكثر تعقيدًا. في بعض الحالات ، تعاقب مواصفات XSL-FO صراحة معالجات FO ، ودرجة معينة من الاختيار في سياق التخطيط.
ينتج عن هذا الاختلاف بين معالجات FO نتائج مختلفة ، والتي غالبًا ما تظل غير مهتم بها. لأن التركيز العام لـ XSL-FO هو إنتاج مستندات مقسمة إلى صفحات / مطبوعة. تعمل مستندات XSL-FO نفسها عادةً كوسطاء ، وتتمثل وظيفتها الرئيسية في إنشاء ملفات PDF أو مستند يمكن طباعته كمخرج ليتم توزيعه. في HTML / CSS أو XSL-FO ، يشير توزيع PDF كنتيجة نهائية بدلاً من إدخال لغة التنسيق إلى أن أجهزة الاستقبال تظل غير متأثرة بالتنوع الناتج الذي ينتج بسبب الاختلافات بين مترجمي لغة التنسيق. من ناحية أخرى ، من الواضح أنه لا توجد طريقة سهلة ، يمكن للمستند أن يلبي الاحتياجات المختلفة للمستلمين ، مثل حجم الصفحة المتغير أو حجم الخط المطلوب ، أو تخصيص الصفحة أو الطباعة.
تنسيق ملف XSLFO
مستندات SL-FO هي في الأساس مستندات XML ، لكنها لا تتبع أي مخطط. في مكانها ، تتبع مستندات SL-FO البنية المحددة في مواصفات لغتها الخاصة. هناك قسمان مطلوبان في كل مستند XSL-FO:
- قسم يحدد قائمة بتخطيطات الصفحة المسماة.
- قسم يحتوي على جميع تفاصيل بيانات المستند ، مع الترميز ، الذي يحدد عرض المحتويات على صفحات مختلفة من خلال تخطيطات صفحات مختلفة.
تم ذكر خصائص الصفحة في تخطيطات الصفحة ، والتي يمكن أن تحدد تنظيم النص ، لتتوافق مع اصطلاحات اللغة المحددة. علاوة على ذلك ، يتم أيضًا تحديد حجم الصفحة وهوامشها وتسلسل الصفحات (التي تفرض خصائص مختلفة للصفحات الفردية والزوجية) بواسطة تخطيطات الصفحة.
يتم تقسيم جزء البيانات من المستند إلى سلسلة من التدفقات ، حيث يتم توصيل كل تدفق بتخطيط الصفحة. التدفقات أرفق قائمة الكتل فيها. قد تحتوي قائمة الكتل هذه على ميزات ترميز مضمنة أو قائمة بيانات نصية ، أو ربما كلاهما في نفس الوقت. قد تعرض هوامش المستند أيضًا أرقام الصفحات أو عناوين الفصول. تظل وظيفة كل من الكتل والعناصر المضمنة كما هي في CSS ، ومع ذلك تختلف بعض قواعد الحشو والهامش بين FO و CSS.
تم تحديد اتجاه اتجاه الصفحة تمامًا لتمديد الكتل والمضمنة ، مما يجعل أداء مستندات FO بلغات مختلفة عن اللغة الإنجليزية. تستخدم لغة مواصفات FO الكلمات بداية ونهاية بدلاً من اليسار واليمين لوصف الاتجاهات. يتم أخذ قواعد ترميز المحتوى الأساسي XSL-FO وقواعد التتالي من CSS. لغة XSL-FO توافق على المواصفات التالية.
أعمدة متعددة
يمكن أن تحتوي الصفحة على أعمدة وكتل متعددة ويمكن أن تمتد من عمود إلى آخر افتراضيًا. يُسمح للصفحات المتعددة بأن يكون لها عروض وأرقام مختلفة من الأعمدة. تتبع جميع خصائص FO حدود الصفحة متعددة الأعمدة.
القوائم
يتم إنشاء قائمة XSL-FO من خلال مجموعتين من الكتل مرتبة الخد بفك. من الناحية المفاهيمية ، في القائمة ، تشير الكتلة الموجودة على اليسار إلى رقم أو رمز نقطي أو سلسلة من النص ، بينما قد تعمل كتلة الجانب الأيمن كما هو متوقع. عادةً ما يتم ترقيم قوائم XSL-FO بواسطة XSLT.
الجداول
جدول FO مشابه لجدول HTML / CSS. يمكن للمستخدم تحديد صفوف البيانات ومعلومات التصميم ولون الخلفية لكل خلية على حدة. باستخدام معلومات التصميم المميزة ، يتمتع المستخدم بامتياز تحديد الصف الأول كصف رأس الجدول. يمكن إعلام معالج FO بشكل صريح بمواصفات المساحة لكل عمود ، أو لملاءمة النص في الجدول تلقائيًا.
الفهرسة
يحتوي XSL-FO 1.1 على ميزات تساعد في إنشاء فهرس من خلال الرجوع إلى العناصر المرمزة بشكل صحيح.
فوائد
- مناسب للنشر المستند إلى المحتوى
- سهولة الاستعمال
- منخفض الكلفة