كائنات تنسيق XSL

XSL-FO ( كائنات تنسيق XSL ) هي لغة ترميز لتنسيق مستندات XML ، وتُستخدم غالبًا لإنشاء ملفات PDF . تُعد XSL-FO جزءًا من XSL (لغة أنماط التنسيق القابلة للتوسيع)، وهي مجموعة من تقنيات W3C المصممة لتحويل وتنسيق بيانات XML. أما الأجزاء الأخرى من XSL فهي XSLT و XPath . نُشر الإصدار 1.1 من XSL-FO في عام 2006.

تعتبر W3C لغة XSL-FO مكتملة الميزات : [ 1 ] كان آخر تحديث لمسودة العمل في يناير 2012، وأغلق فريق العمل الخاص بها في نوفمبر 2013. [ 2 ]

الأساسيات

على عكس دمج HTML و CSS ، تُعدّ XSL-FO لغة عرض موحدة. فهي لا تحتوي على ترميز دلالي بالمعنى المستخدم في HTML. وعلى عكس CSS التي تُعدّل العرض الافتراضي لمستند XML أو HTML خارجي، فإنها تخزن جميع بيانات المستند داخلها.

تعتمد الفكرة العامة لاستخدام XSL-FO على كتابة المستخدم للمستند بلغة XML، وليس بلغة FO. ومن الأمثلة على ذلك XHTML و DocBook و TEI . بعد ذلك، يحصل المستخدم على تحويل XSLT ، إما بكتابته بنفسه أو بإيجاد تحويل مناسب لنوع المستند المطلوب. يقوم هذا التحويل بتحويل XML إلى XSL-FO.

بعد إنشاء مستند XSL-FO، يُمرر إلى تطبيق يُسمى معالج FO. يقوم معالج FO بتحويل مستند XSL-FO إلى صيغة قابلة للقراءة أو الطباعة أو كليهما. أكثر مخرجات XSL-FO شيوعًا هي ملف PDF أو PostScript ، ولكن بعض معالجات FO قادرة على الإخراج إلى صيغ أخرى مثل ملفات RTF أو حتى مجرد نافذة في واجهة المستخدم الرسومية لعرض تسلسل الصفحات ومحتوياتها.

صُممت لغة XSLT في الأصل لهذا الغرض فقط، لكنها تُستخدم الآن على نطاق واسع لتحويلات XML الأكثر عمومية. تُعتبر خطوة التحويل هذه بديهية في XSL-FO لدرجة أنه من الشائع تسمية XSLT الذي يحوّل XML إلى XSL-FO بوثيقة XSL-FO نفسها. حتى أن الدروس التعليمية حول XSL-FO تُكتب عادةً باستخدام أوامر XSLT حول تعليمات معالجة FO.

تُعدّ خطوة تحويل XSLT قوية للغاية. فهي تسمح بالتوليد التلقائي لجدول المحتويات، والمراجع المرتبطة، والفهرس، والعديد من الإمكانيات الأخرى.

لا يُشبه مستند XSL-FO مستند PDF أو PostScript. فهو لا يُحدد بدقة تخطيط النص على الصفحات المختلفة، بل يُحدد شكل الصفحات ومواقع محتوياتها. ومن ثم، يُحدد مُعالج FO كيفية وضع النص ضمن الحدود التي يُحددها مستند FO. بل إن مواصفات XSL-FO تسمح لمُعالجات FO المختلفة بتقديم استجابات مُتباينة فيما يتعلق بالصفحات الناتجة.

على سبيل المثال، يمكن لبعض معالجات FO استخدام الواصلة لتقسيم الكلمات إلى أسطر فرعية لتقليل المسافة عند الانتقال بينها، بينما لا تستخدمها معالجات أخرى. وقد تستخدم المعالجات المختلفة خوارزميات تقسيم مختلفة، تتراوح بين البسيطة جدًا والمعقدة التي تأخذ في الاعتبار ما إذا كان السطر السابق أو التالي مقسمًا أيضًا. وهذا من شأنه أن يُغير، في بعض الحالات الحدية، تخطيط الصفحات المختلفة بشكل كبير. وفي حالات أخرى، تسمح مواصفات XSL-FO صراحةً لمعالجات FO ببعض الخيارات فيما يتعلق بالتخطيط.

لا يُعدّ هذا التباين بين معالجات تنسيق النصوص، وما ينتج عنه من نتائج غير متناسقة، مصدر قلق في أغلب الأحيان. والسبب في ذلك هو أن الغرض الأساسي من XSL-FO هو إنشاء وسائط مطبوعة مُقسّمة إلى صفحات. تُستخدم مستندات XSL-FO عادةً كوسيط، لإنشاء ملفات PDF أو مستند مطبوع كصيغة نهائية للتوزيع. وهذا يختلف عن طريقة إنشاء وتوزيع HTML كصيغة نهائية مباشرةً للمستخدم. إن توزيع ملف PDF النهائي بدلاً من مُدخلات لغة التنسيق (سواءً كانت HTML/CSS أو XSL-FO) يعني، من جهة، أن المُستلمين لا يتأثرون بعدم القدرة على التنبؤ الناتج عن الاختلافات بين مُفسّرات لغات التنسيق، بينما يعني، من جهة أخرى، أن المستند لا يُمكن تعديله بسهولة ليُلائم احتياجات المُستلمين المختلفة، مثل اختلاف حجم الصفحة أو حجم الخط المُفضّل، أو تخصيصه للعرض على الشاشة أو على الورق أو في ملف صوتي.

مفاهيم اللغة

تم تصميم لغة XSL-FO للوسائط ذات الصفحات؛ وعلى هذا النحو، فإن مفهوم الصفحات هو جزء لا يتجزأ من بنية XSL-FO.

يُعدّ تنسيق FO الأنسب لما يُمكن تسميته بالتصميم "المُوجّه بالمحتوى". وهو الأسلوب القياسي لتصميم الكتب والمقالات والوثائق القانونية، وما شابه. يتضمن هذا الأسلوب نصًا متصلًا ومتدفقًا، مع تضمين معلومات مُتكررة في هوامش الصفحة. ويختلف هذا عن التصميم "المُوجّه بالتخطيط"، المُستخدم في الصحف والمجلات. فإذا لم يتسع المحتوى في هذه الوثائق للمساحة المطلوبة، يُحذف جزء منه حتى يُصبح مناسبًا. لا يُجيد تنسيق XSL-FO التعامل مع القيود الصارمة لتخطيط المجلات؛ بل إنه في كثير من الحالات، يفتقر إلى القدرة على التعبير عن بعض أشكال هذا التخطيط.

على الرغم من بساطة تصميم اللغة، إلا أنها تتمتع بقدرة تعبيرية عالية. فهي توفر الجداول والقوائم والعناصر العائمة الجانبية، بالإضافة إلى مجموعة متنوعة من الميزات الأخرى. وتُشابه هذه الميزات ميزات التخطيط في CSS، مع العلم أنه من المتوقع أن تُبنى بعض هذه الميزات بواسطة XSLT.

هيكل المستند

تُعدّ مستندات XSL-FO مستندات XML، ولكنها لا تخضع لأي تعريف نوع المستند (DTD) أو مخطط. بدلاً من ذلك، فهي تخضع لبنية محددة في مواصفات XSL-FO .

تحتوي مستندات XSL-FO على قسمين إلزاميّين. يُفصّل القسم الأول قائمةً بتخطيطات الصفحات المُسمّاة. أما القسم الثاني، فهو عبارة عن قائمة ببيانات المستند، مع علامات التنسيق، التي تستخدم تخطيطات الصفحات المختلفة لتحديد كيفية توزيع المحتوى على الصفحات المختلفة.

تُحدد تخطيطات الصفحات خصائص الصفحة. فهي تُحدد اتجاهات تدفق النص، بما يتوافق مع قواعد اللغة المستخدمة. كما تُحدد حجم الصفحة وهوامشها. والأهم من ذلك، أنها تُحدد تسلسلات الصفحات التي تُتيح تأثيراتٍ تجعل الصفحات الفردية تبدو مختلفة عن الصفحات الزوجية. على سبيل المثال، يُمكن تحديد تسلسل تخطيط صفحات يُوفر مساحة إضافية للهوامش الداخلية لأغراض الطباعة؛ مما يُتيح مساحة أكبر للهامش الذي سيُجلد عنده الكتاب.

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

تعمل العناصر الكتلية والمضمنة بطريقة مشابهة إلى حد كبير لطريقة عملها في CSS، مع اختلاف بعض قواعد الحشو والهوامش بين FO وCSS. يمكن تحديد اتجاه تقدم العناصر الكتلية والمضمنة بشكل كامل بالنسبة لاتجاه الصفحة، مما يسمح لمستندات FO بالعمل بلغات تُقرأ بشكل مختلف عن الإنجليزية. تستخدم لغة مواصفات FO، على عكس لغة CSS 2.1، مصطلحات محايدة للاتجاه مثل "بداية" و"نهاية" بدلاً من "يسار" و"يمين" عند وصف هذه الاتجاهات.

تعتمد بنية المحتوى الأساسية لـ XSL-FO على CSS وقواعدها المتتالية. ولذلك، تنتقل العديد من سمات XSL-FO إلى العناصر الفرعية ما لم يتم تجاوزها صراحةً.

إمكانيات XSL-FO الإصدار 1.0

تتمتع لغة XSL-FO بقدرات كبيرة في مجال تنسيق النصوص. بالإضافة إلى المعلومات المذكورة أعلاه، تسمح لغة XSL-FO بتحديد ما يلي.

أعمدة متعددة

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

بسبب طبيعة مواصفات صفحات XSL-FO، قد تحتوي صفحات متعددة على أعداد وعرض أعمدة مختلفة. وبالتالي، يمكن أن ينتقل النص بسهولة من صفحة بثلاثة أعمدة إلى صفحة بخمسة أعمدة ثم إلى صفحة بعمود واحد.

جميع ميزات FO تعمل ضمن قيود الصفحة متعددة الأعمدة.

يمكننا أن نمتد على عدة أعمدة عن طريق تحديد سمتين، وهما: span و padding-after.

القوائم

تتكون قائمة XSL-FO أساسًا من مجموعتين من الكتل مُكدسة جنبًا إلى جنب. يتألف كل عنصر من كتلة على "اليسار"، أو بداية السطر، وتسلسل كتل على "اليمين"، أو نهاية السطر. تُمثل الكتلة على اليسار، من الناحية النظرية، الرقم أو النقطة في القائمة. مع ذلك، يُمكن أن تكون سلسلة نصية، كما هو الحال في مدخلات المُعجم. أما الكتلة على اليمين فتؤدي وظيفتها كما هو مُتوقع. يُمكن أن تكون كلتا الكتلتين حاويات للكتل، أو أن تحتوي كل منهما على عدة كتل في عنصر قائمة واحد.

يُفترض أن يتم ترقيم قوائم XSL-FO، عند ترقيمها، بواسطة XSLT أو أي عملية أخرى أنشأت مستند XSL-FO. لذا، يجب ترقيم القوائم بشكل صريح في XSL-FO.

أدوات التحكم في ترقيم الصفحات

يمكن للمستخدم تحديد خصائص "البيانات اليتيمة " و "البيانات الفارغة" للكتل أو للتدفق نفسه، والسماح للسمات بالانتقال إلى الكتل الفرعية. بالإضافة إلى ذلك، يمكن تحديد الكتل بحيث تبقى معًا في صفحة واحدة. على سبيل المثال، يمكن ضبط كتلة الصورة ووصفها بحيث لا يتم فصلهما أبدًا. سيبذل معالج تدفق البيانات قصارى جهده للالتزام بهذه الأوامر، حتى لو تطلب ذلك إنشاء مساحة فارغة كبيرة على الصفحة.

الحواشي

يستطيع المستخدم إنشاء حواشي سفلية تظهر أسفل الصفحة. تُكتب الحاشية، في مستند FO، ضمن سياق النص عند موضع الإشارة إليها. يُعرض المرجع كتعريف مضمن، مع أنه ليس إلزاميًا. يتكون متن المستند من كتلة أو أكثر يضعها معالج FO أسفل الصفحة. يضمن معالج FO أن تبدأ الحاشية المُشار إليها في نفس الصفحة، بغض النظر عن موضع المرجع، حتى لو تطلب ذلك مساحة فارغة إضافية.

الجداول

يعمل جدول FO بشكل مشابه لجدول HTML/CSS. يحدد المستخدم صفوف البيانات لكل خلية على حدة. كما يمكنه تحديد بعض خصائص التنسيق لكل عمود، مثل لون الخلفية. بالإضافة إلى ذلك، يمكن للمستخدم تحديد الصف الأول كصف رأس للجدول، مع خصائص تنسيق خاصة به.

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

عناصر التحكم في اتجاه النص

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

متنوع

  • الاستشهاد بأرقام الصفحات. يمكن الاستشهاد بصفحة تحتوي على علامة خاصة في النص، وسيقوم معالج FO بتعبئة رقم الصفحة الفعلي حيث تظهر هذه العلامة.
  • حدود الكتل، في عدد من الأنماط.
  • ألوان وصور الخلفية.
  • التحكم في الخطوط ووزنها، كما هو الحال في CSS.
  • عوامات جانبية.
  • عناصر مضمنة متنوعة.

إمكانيات XSL-FO الإصدار 1.1

يضيف الإصدار 1.1 من XSL-FO عددًا من الميزات الجديدة إلى الإصدار 1.0.

التدفقات المتعددة ورسم خرائط التدفق

كان الإصدار 1.0 من XSL-FO مقيدًا إلى حد كبير فيما يتعلق بنوع النص المسموح به في كل منطقة من الصفحة. أما الإصدار 1.1 فقد خفف هذه القيود بشكل ملحوظ، مما يسمح بتوزيع النص المتدفق على مناطق محددة متعددة في الصفحة. وهذا يتيح طباعةً أقرب إلى طباعة الصحف.

الإشارات المرجعية

تتضمن العديد من تنسيقات الإخراج لمعالجات XSL-FO، وخاصةً PDF، ميزات الإشارات المرجعية. تسمح هذه الميزة بتحديد سلسلة نصية في نافذة منفصلة يمكن للمستخدم تحديدها. عند التحديد، تنتقل نافذة المستند مباشرةً إلى منطقة محددة منه.

يوفر الإصدار 1.1 من XSL-FO الآن إمكانية إنشاء إشارات مرجعية مسماة في XSL-FO، مما يسمح للمعالج بتمرير هذا إلى تنسيق إخراج يدعمه.

الفهرسة

يحتوي برنامج XSL-FO 1.1 على ميزات تدعم إنشاء فهرس يمكن العثور عليه في نهاية الكتاب. ويتم ذلك من خلال الإشارة إلى العناصر المحددة بشكل صحيح في مستند FO.

الاقتباس من الصفحة الأخيرة

يمكن إنشاء الصفحة الأخيرة دون الحاجة إلى تحديد مرجع صريح داخل المستند إلى نقطة ارتكاز معينة في مستند FO. ويمكن حصر تعريف "الصفحة الأخيرة" ضمن مجموعة صفحات محددة أو ليشمل المستند بأكمله. وهذا يسمح للمستخدم بتحديد شيء مثل "الصفحة 2 من 15"، حيث تمثل الصفحة 15 رقم الصفحة في تعريف الصفحة الأخيرة.

علامات الجدول

تتيح علامات الجدول للمستخدم إنشاء محتوى ديناميكي داخل رؤوس وتذييلات الجدول، مثل المجاميع التراكمية في أسفل كل صفحة من الجدول أو مؤشرات "متابعة الجدول".

عوامات داخلية/خارجية

يُضيف الإصدار 1.1 من XSL-FO الكلمتين المفتاحيتين "داخل" و"خارج" لتحديد الحواف الجانبية، مما يُتيح إمكانية تصميم صفحات ذات هوامش موضوعة على الحواف الخارجية أو الداخلية للصفحات. تشير كلمة "داخل" إلى جانب الصفحة المُقابل لغلاف الكتاب، بينما تشير كلمة "خارج" إلى جانب الصفحة البعيد عن غلاف الكتاب.

تحسين حجم الرسومات

يُحسّن الإصدار 1.1 من XSL-FO وظائف تغيير حجم الرسومات لتناسب المساحة المتاحة، حيث يُتيح إمكانية تصغيرها لتناسب المساحة (وليس تكبيرها)، بالإضافة إلى إمكانية تحديد خطوات تغيير الحجم بدقة. علاوة على ذلك، يُمكن الإشارة إلى عامل تغيير الحجم الناتج عند العرض (على سبيل المثال، لكتابة "الصورة المعروضة هي 50% من حجمها الفعلي" في شرح الشكل).

المزايا

  • لغة XML – نظرًا لكونها لغة XML، فإنّ تحويل XSLT (ومعالج XSLT) يكفيان فقط لإنشاء كود XSL-FO من أي لغة XML. يمكن بسهولة كتابة مستند بتنسيق TEI أو DocBook ، ثم تحويله إلى HTML لعرضه على الويب أو إلى PDF (عبر معالج FO) للطباعة. في الواقع، توجد العديد من ملفات XSLT الجاهزة بتنسيقي TEI وDocBook لكلا الغرضين.
  • سهولة الاستخدام – من مزايا XSL-FO سهولة استخدامها نسبيًا. تعتمد معظم وظائف اللغة على CSS، لذا فإن مستخدم CSS سيكون على دراية بأساسيات خصائص الترميز. عادةً ما يكون فهم شكل قسم معين من مستند FO أمرًا سهلاً للغاية.
  • منخفض التكلفة - بالمقارنة مع منتجات الطباعة التجارية وتصميم الصفحات، يُمكن لـ XSL-FO أن يُقدم حلاً أقل تكلفة بكثير عند استيفائه لمتطلبات الطباعة والتصميم (انظر أدناه). تكلفة امتلاكه الأولية منخفضة (صفرية إذا كانت التطبيقات المجانية، مثل Apache FOP و xmlroff ، تُناسب احتياجاتك)، خاصةً بالمقارنة بتكلفة أدوات التأليف التجارية. المهارات المطلوبة (برمجة XSLT بشكل أساسي) متوفرة على نطاق واسع. يوجد عدد من الكتب الجيدة حول XSL-FO بالإضافة إلى موارد عبر الإنترنت ومجتمع مستخدمين نشط.
  • يدعم XSL-FO لغات متعددة ، وقد صُمم ليعمل مع جميع اللغات البشرية المكتوبة، وقد حققت تطبيقاته هذا الهدف إلى حد كبير. وهذا ما يجعله مناسبًا بشكل خاص لإنشاء وثائق مترجمة إلى عدد كبير من اللغات الوطنية، حيث يُشترط وجود مجموعة أدوات واحدة قادرة على إنشاء جميع نسخ الوثائق اللغوية. ويُعد هذا الأمر بالغ الأهمية في مجال التوثيق التقني، لا سيما في قطاع الإلكترونيات الاستهلاكية، حيث تُعتبر اللغات الآسيوية والشرق أوسطية ذات أهمية بالغة، نظرًا لأن هذه المناطق تُمثل أسواقًا ضخمة لمنتجات مثل الهواتف المحمولة وملحقات الحاسوب.
  • معيار ناضج – مع إصدار XSL-FO 1.1، يثبت XSL-FO أنه معيار ناضج، وله العديد من التطبيقات التجارية وغير التجارية الموثوقة. لا يوجد معيار آخر مماثل لتكوين الصفحات.

العيوب

  • إمكانيات محدودة – صُممت لغة XSL-FO خصيصًا لتلبية متطلبات المستندات ذات التصميم البسيط، مثل الكتيبات الفنية، ومستندات الأعمال، والفواتير، وما شابه. ورغم إمكانية استخدامها، بل واستخدامها بالفعل، في تصميمات أكثر تعقيدًا، إلا أنها محدودة بطبيعتها فيما يتعلق بالتخطيط والطباعة. على وجه الخصوص، لا توفر XSL-FO طريقة مباشرة للحصول على تأثيرات التنسيق التي تعتمد على معرفة علاقة موضع الصفحة بين عنصرين من عناصر التنسيق. على سبيل المثال، لا توجد طريقة مباشرة لتحديد "إذا كان هذا العنصر في نفس صفحة ذاك العنصر، فقم بتنفيذ X، وإلا فقم بتنفيذ Y". هذا قرار تصميمي صريح يعكس نموذج المعالجة المجردة ثنائي المراحل والقائم على التحويل الذي تستخدمه XSL-FO. يمكن معالجة هذا القيد من خلال تطبيق عملية متعددة المراحل. لسوء الحظ، لا يوجد حاليًا معيار لكيفية نقل نتيجة المرحلة الأولى إلى المرحلة الثانية. توفر معظم التطبيقات، إن لم تكن جميعها، شكلًا من أشكال تنسيق النتائج الوسيطة القابلة للمعالجة التي يمكن استخدامها لهذا الغرض، ولكن أي عملية من هذا القبيل تُطبق اليوم ستكون بالضرورة خاصة بكل تطبيق.
  • وبالمثل، هناك ميزات تخطيط مهمة غير موجودة في XSL-FO، إما لأنها لم تكن ذات أولوية عالية بما فيه الكفاية أو لأن تصميمها كان صعبًا للغاية بحيث لا يسمح بإدراجها في الإصدار 1.1، أو لأنه لم تكن هناك تطبيقات كافية للسماح بإدراجها في المواصفات النهائية وفقًا لقواعد W3C.
  • إضافةً إلى هذه القيود المعمارية، لا توفر تطبيقات XSL-FO الحالية، سواءً التجارية أو مفتوحة المصدر، نفس مستوى الدقة الطباعية الذي توفره أدوات التخطيط المتطورة مثل QuarkXPress أو InDesign ، أو أنظمة التنضيد القابلة للبرمجة مثل LaTeX . على سبيل المثال، لا يوفر أي تطبيق حالي ميزات لضمان محاذاة أسطر النص عموديًا على الصفحات المتقابلة. لا يوجد في مواصفات XSL-FO ما يمنع ذلك، ولكن لا يوجد ما يفرضه أيضًا. بالنسبة لمعظم المستندات التي يكفي فيها حل تأليف آلي بالكامل، لا حاجة إلى هذا المستوى من الدقة الطباعية. مع ذلك، بالنسبة للمنشورات الراقية والكتب الموجهة للجمهور العام، عادةً ما يكون ذلك ضروريًا؛ وفي بعض الحالات، يمكن تحقيق ذلك باستخدام XSLT لإنشاء مستند LaTeX .
  • الاعتماد على الإضافات - عند النظر في مدى ملاءمة XSL-FO لمستند معين أو تصميم مستند، يجب مراعاة الإضافات الخاصة التي توفرها تطبيقات XSL-FO المختلفة. تضيف هذه الإضافات ميزات غير موجودة في المواصفات الأساسية. على سبيل المثال، يدعم أحد المنتجات قواعد الطباعة اليابانية التي لا تتناولها مواصفات XSL-FO. مع ذلك، فإن استخدام هذه الميزات يجعل نظام XSL-FO هذا أكثر ارتباطًا بتطبيق محدد (ولكن ليس ارتباطًا تامًا كما هو الحال عند استخدام نظام تركيب خاص بالكامل).
  • التحرير اليدوي غير عملي - من غير العملي عمومًا تحرير ملفات XSL-FO يدويًا (صُممت XSL-FO للوضوح والشمولية، وليس لسهولة التحرير). يمكن لأدوات التحرير المرئية مثل XFDesigner أن تُسهّل هذه المهمة، مع العلم أنه لا يمكن الوصول إلى جميع وسوم XSL-FO (وخاصةً العلامات والحواشي السفلية). لم يعد XF Designer منتجًا مدعومًا من شركة Ecrion Software.

عند محاولة تحديد ما إذا كان XSL-FO سيعمل مع مستند معين أم لا، فإن متطلبات الطباعة والتخطيط التالية تشير عادةً إلى أن XSL-FO لن يعمل (على الرغم من أن بعض هذه المتطلبات قد يتم تلبيتها بواسطة ملحقات خاصة):

  • يلزم إعادة ترقيم الحواشي السفلية أو تسلسل الرموز في كل صفحة جديدة (ومع ذلك، توفر بعض التطبيقات امتدادات لدعم ترقيم الحواشي السفلية التلقائي).
  • يلزم تشغيل نص حول كلا جانبي كائن عائم (يمكن لـ XSL-FO تشغيل نص حول جانب واحد والجزء العلوي و/أو السفلي، ولكن ليس كلا الجانبين؛ ومع ذلك، توفر بعض التطبيقات دعمًا لمثل هذه التخطيطات المعقدة عبر ملحقات خاصة.)
  • يجب أن يكون عدد الأعمدة متغيرًا في الصفحة الواحدة (ومع ذلك، توفر اثنتان على الأقل من التطبيقات التجارية امتدادات لإنشاء كتل متعددة الأعمدة داخل الصفحة).
  • يجب أن تكون الحواشي السفلية على مستوى العمود (توفر العديد من التطبيقات امتدادات للحواشي السفلية على مستوى العمود).
  • يجب أن تكون الهوامش قابلة للتغيير ديناميكيًا بالنسبة للهوامش الأخرى (على سبيل المثال، الهوامش المتباعدة عموديًا بالتساوي على الصفحة). يوفر XSL-FO ميزات لوضع الهوامش بحيث تكون محاذية عموديًا لنقطة ارتكازها فقط.
  • أحتاج إلى إنشاء محتوى يمتد عبر صفحتين كعنصر عائم أو "خارج السطر" في تسلسل متجانس من قوالب الصفحات المتكررة (يمكن القيام بذلك في XSL-FO 1.1 باستخدام مناطق متعددة للجسم وخرائط التدفق، ولكنه يتطلب القدرة على التحكم في قوالب الصفحات المستخدمة لتلك الصفحات).
  • نحتاج إلى كل من المحتوى العائم في الأسفل والحواشي السفلية في نفس الصفحة.
  • يجب أن يكون قادراً على تشغيل النص مقابل منحنى عشوائي (على الرغم من أن بعض التطبيقات تدعم SVG ، والتي يمكن استخدامها للتغلب على هذا القيد).
  • يجب أن نكون قادرين على تقييد الخطوط بشبكات أساسية محددة (على سبيل المثال، لتحقيق تسجيل دقيق للخطوط على الصفحات المتقابلة).
  • أي شيء يتطلب تخطيطًا مراعيًا للصفحة، مثل ضمان ظهور الشكل دائمًا على الصفحة المواجهة لنقطة ارتكازه.

الاستبدال

تُعدّ معايير XML و HTML ، إلى جانب معيار CSS ، حيث بدأ CSS2 ( وحدة الوسائط المُصفّحة ) بتوفير ميزات أساسية للوسائط المطبوعة. ومع CSS Paged Media Module المستوى 3 ، يُكمل اتحاد شبكة الويب العالمية (W3C) صياغة معيار متكامل لتنسيق المستندات وإنشاء ملفات PDF. لذا، منذ عام 2013، [ 2 ] يُعتبر CSS3-paged اقتراحًا من W3C كبديل لـ XSL-FO.

تم نشر ملاحظات التصميم الخاصة بالإصدار 2.0 من كائنات تنسيق XSL لأول مرة في عام 2009 وتم تحديثها آخر مرة في عام 2012. [ 3 ]

انظر أيضاً

مراجع

  1. "الحالة الحالية لـ XSL-FO - W3C" . www.w3.org . تم الاطلاع عليه بتاريخ 5 أغسطس 2016 .
  2. 1 2 كوين، ليام (2 نوفمبر 2013). "ردًا على: [ xsl ] xsl 2.0؟" . قائمة XSL - منتدى مفتوح حول XSL (قائمة بريدية).
  3. "نُشرت ملاحظات تصميم XSL-FO 2.0 - W3C" . www.w3.org . تاريخ الاسترجاع: 9 نوفمبر 2018 .