فایل XSL-FO چیست؟
XSL-FO (XSL Formatting Objects) یک زبان شیوه نامه قدرتمند برای قالب بندی اسناد XML است. معنای شکل محدود کاغذ و چاپ با XSL-FO هنگامی که ابعاد ثابت هستند بیان می شود. در مقابل HTML که معانی شکل نامحدود یک پنجره مرورگر با ابعاد متغیر را نشان می دهد. اسناد XML فرمت شده توسط XSL-FO بیشتر برای تولید فایل های PDF استفاده می شوند. XSL (Extensible Stylesheet Language) مجموعهای از فناوریهای W3C با ویژگیهای کامل است که برای قالببندی و تبادل اسناد XML و بخشی XSL-FO از این زبان طراحی شده است. XSLT و XPath نیز از دیگر بخشهای XSL هستند.
پیشنهاد شده است که اسناد XML باید ابتدا به XSL-FO تبدیل شوند، PDF نمونه ای از این معیار است. در PDF، نتایج با استفاده از XSLTfirst و سپس XSL-FO فرمتکننده ارائه میشوند. در این روش، اسناد XML را می توان به صورت تصادفی قالب بندی کرد. اگرچه XSL-FO از مزایای استفاده از ویژگیهای Cascading Style Sheet (CSS) و گسترش آنها در هر جایی که برای قالب واقعی لازم باشد، استفاده میکند، اما در اصطلاح XSL-FO، الگوهای صفحهای به نام masters page را در خود جای داده است. XSL-FO همچنین قالب بندی اسناد نسبتاً پیچیده را فراهم می کند و از تولید فهرست پشتیبانی می کند.
تاریخچه و مفاهیم پایه
در ژانویه 2012، پیش نویس کاری XSL-FO آخرین بار به روز شد و در نوامبر 2013، گروه کاری آن بسته شد. یک stylesheet XSL با توضیح اینکه چگونه یک نمونه از کلاس به یک سند XML تبدیل می شود که از واژگان قالب بندی استفاده می کند، ارائه یک کلاس از اسناد XML را مشخص می کند. XSL-FO یک زبان ارائه یکپارچه است و هیچ نشانه گذاری معنایی که در HTML استفاده می شود ندارد. علاوه بر این، این زبان برخلاف CSS که تنظیمات پیشفرض یک سند خارجی HTML یا XML را تغییر میدهد، تمام دادههای سند را در خود ذخیره میکند.
معیار کلی استفاده از XSL-FO این است که کاربر به جای نوشتن در FO، یک سند را به زبان XML بنویسد. پس از آن، تبدیل 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 باقی می ماند، اما برخی از قوانین padding و margin بین FO و CSS متفاوت هستند.
The page orientation direction is entirely specified for the extension of blocks and inlines, thus making FO documents perform under the languages different from English. The language of the FO specification uses the words start and end rather than left and right for directions description. XSL-FO’s basic content markup and cascading rules are taken from CSS. XSL-FO’s language agrees to the following specifications.
چندین ستون
یک صفحه می تواند چندین ستون و بلوک داشته باشد و به طور پیش فرض از یک ستون به ستون دیگر گسترش یابد. چندین صفحه مجاز به داشتن عرض و تعداد ستون های مختلف هستند. همه ویژگی های FO از محدودیت های یک صفحه چند ستونی پیروی می کنند.
لیست ها
یک لیست XSL-FO توسط دو مجموعه بلوک که گونه به جبل مرتب شده اند ایجاد می شود. از نظر مفهومی، در یک لیست، یک بلوک در سمت چپ یک عدد، یک گلوله یا یک رشته متن را نشان می دهد، در حالی که بلوک سمت راست ممکن است همانطور که پیش بینی می شود کار کند. شماره گذاری لیست های XSL-FO معمولا توسط XSLT انجام می شود.
جداول
جدول FO شبیه به جدول HTML/CSS است. کاربر می تواند ردیف داده ها، اطلاعات سبک، رنگ پس زمینه را برای هر سلول جداگانه انتخاب کند. با استفاده از اطلاعات سبک متمایز، کاربر این امتیاز را دارد که ردیف اول را به عنوان ردیف سرصفحه جدول انتخاب کند. پردازنده FO می تواند به طور صریح در مورد مشخصات فضای هر ستون مطلع شود یا متن را در جدول به صورت خودکار تنظیم کند.
نمایه سازی
XSL-FO 1.1 دارای ویژگی هایی است که از طریق ارجاع به عناصر علامت گذاری شده به درستی به تولید شاخص کمک می کند.
فواید
مناسب برای انتشارات مبتنی بر محتوا
راحتی در استفاده
کم هزینه