एक्सएसएल-एफओ फाइल क्या है?
XSL-FO (XSL फ़ॉर्मेटिंग ऑब्जेक्ट) XML दस्तावेज़ों को फ़ॉर्मेट करने के लिए एक शक्तिशाली स्टाइलशीट भाषा है। पेपर और प्रिंट के बाउंडेड फॉर्म का शब्दार्थ एक्सएसएल-एफओ द्वारा व्यक्त किया जाता है जब आयाम तय होते हैं। HTML के विपरीत, जो चर आयामों के साथ एक ब्राउज़र विंडो के अबाधित रूप के शब्दार्थ का प्रतिनिधित्व करता है। एक्सएसएल-एफओ द्वारा स्वरूपित एक्सएमएल दस्तावेज ज्यादातर पीडीएफ फाइलों को उत्पन्न करने के लिए उपयोग किए जाते हैं। XSL (एक्स्टेंसिबल स्टाइलशीट लैंग्वेज) फीचर-पूर्ण W3C तकनीकों का एक सेट है, जिसका उद्देश्य XML दस्तावेजों और इस भाषा के XSL-FO भाग को स्वरूपित और आदान-प्रदान करने के लिए डिज़ाइन करना है। XSLT और XPath भी XSL के अन्य भाग हैं।
यह प्रस्तावित है कि XML दस्तावेज़ों को पहले XSL-FO में रूपांतरित किया जाना चाहिए, PDF इस मानदंड का एक उदाहरण है। PDF में, परिणाम XSLTfirst और फिर XSL-FO फ़ॉर्मेटर का उपयोग करके प्रस्तुत किए जाते हैं। इस तरीके से, XML दस्तावेज़ों को अनियमित रूप से स्वरूपित किया जा सकता है। हालांकि एक्सएसएल-एफओ कैस्केडिंग स्टाइल शीट (सीएसएस) गुणों का उपयोग करने और वास्तविक प्रारूप के लिए आवश्यक होने पर उन्हें विस्तारित करने का लाभ उठाता है, यह एक्सएसएल-एफओ की शब्दावली में पेज मास्टर्स नामक पेज टेम्पलेट्स का प्रावधान रखता है। XSL-FO काफी परिष्कृत दस्तावेज़ों के लिए फ़ॉर्मेटिंग भी प्रदान करता है और अनुक्रमणिका निर्माण का समर्थन करता है।
इतिहास और बुनियादी अवधारणाएं
जनवरी 2012 में XSL-FO के वर्किंग ड्राफ्ट को पिछली बार अपडेट किया गया था और नवंबर 2013 में इसके वर्किंग ग्रुप को बंद कर दिया गया था। एक XSL स्टाइलशीट XML दस्तावेज़ों के एक वर्ग की प्रस्तुति को यह वर्णन करके निर्दिष्ट करती है कि कैसे वर्ग का एक उदाहरण एक XML दस्तावेज़ में परिवर्तित हो जाता है जो स्वरूपण शब्दावली का उपयोग करता है। XSL-FO एक एकीकृत प्रस्तुतिकरण भाषा है और इसका कोई सिमेंटिक मार्कअप नहीं है जो HTML में उपयोग किया जाता है। इसके अलावा, यह भाषा दस्तावेज़ के सभी डेटा को अपने भीतर संग्रहीत करती है, CSS के विपरीत जो बाहरी HTML या XML दस्तावेज़ की डिफ़ॉल्ट सेटिंग्स को बदल देती है।
XSL-FO का उपयोग करने का सामान्य मानदंड यह है कि उपयोगकर्ता दस्तावेज़ को FO में लिखने के बजाय XML भाषा में लिखता है। उसके बाद, एक XSLT रूपांतरण होता है। यह XSLT रूपांतरण XML को XSL-FO में बदलने के लिए जिम्मेदार है। जैसे ही, XSL-FO दस्तावेज़ जनरेट होता है, तब इसे FO प्रोसेसर नामक एप्लिकेशन को सौंप दिया जाता है। एफओ प्रोसेसर इस दस्तावेज़ को पढ़ने योग्य और साथ ही प्रिंट करने योग्य दस्तावेज़ में बदलने के लिए ज़िम्मेदार हैं। पीडीएफ फाइलें या पीएस एक्सएसएल-एफओ के सबसे आम आउटपुट के उदाहरण हैं। लेकिन इसका मतलब यह नहीं है कि एफओ प्रोसेसर आउटपुट के रूप में केवल इन दो प्रकार के प्रारूप का उत्पादन कर सकता है। कुछ एफओ प्रोसेसर आरटीएफ फाइलों में आउटपुट कर सकते हैं या उपयोगकर्ता के जीयूआई में एक विंडो भी दिखाई दे सकती है, यह विंडो पृष्ठ के अनुक्रम और उनकी सामग्री को प्रदर्शित करती है।
एक एक्सएसएल-एफओ दस्तावेज़ पीडीएफ या पीएस से इस अर्थ में अलग है, यह अंततः विभिन्न पृष्ठों पर टेक्स्ट लेआउट को परिभाषित नहीं करता है। शायद, यह पृष्ठों को स्टाइल करता है और सामग्री प्रदर्शित करने के लिए स्थान निर्धारित करता है। इसके अलावा, एक एफओ प्रोसेसर एफओ दस्तावेज़ द्वारा निर्दिष्ट सीमाओं के भीतर पाठ का आयोजन करता है। यह विनिर्देश विभिन्न एफओ प्रोसेसरों को परिणामी-निर्मित पृष्ठों के अनुसार व्यवहार करने की अनुमति भी देता है। इस तरह के व्यवहार का एक उदाहरण हाइफ़नेशन है, कुछ एफओ प्रोसेसर एक लाइन टूटने पर जगह बचाने के लिए शब्दों को हाइफ़नेट कर सकते हैं, जबकि कुछ प्रोसेसर इस विकल्प का चयन नहीं करते हैं। यह प्रोसेसर पर निर्भर करता है कि वे अलग-अलग हाइफ़नेशन एल्गोरिदम चुनें जो उनकी आवश्यकताओं से मेल खाते हों। ये हाइफ़नेशन एल्गोरिदम बहुत सरल या शायद अधिक जटिल हो सकते हैं। कुछ स्थितियों में, एक्सएसएल-एफओ विनिर्देश स्पष्ट रूप से एफओ प्रोसेसर को प्रतिबंधित करता है, लेआउट के संदर्भ में पसंद की कुछ डिग्री।
एफओ प्रोसेसर के बीच यह भिन्नता अलग-अलग परिणाम उत्पन्न करती है, जिसके बारे में प्रोसेसर अक्सर असंबद्ध रहते हैं। क्योंकि XSL-FO का सामान्य ध्यान पृष्ठांकित/मुद्रित दस्तावेज तैयार करना है। एक्सएसएल-एफओ दस्तावेज़ स्वयं आमतौर पर मध्यस्थ के रूप में कार्य करते हैं, उनका मुख्य कार्य या तो पीडीएफ फाइलें या एक दस्तावेज उत्पन्न करना है जिसे वितरित किए जाने वाले आउटपुट के रूप में मुद्रित किया जा सकता है। HTML/CSS या XSL-FO में, स्वरूपण भाषा को इनपुट करने के बजाय अंतिम परिणाम के रूप में PDF को वितरित करना इंगित करता है कि रिसीवर परिणामी बहुमुखी प्रतिभा से अप्रभावित रहते हैं जो स्वरूपण भाषा के दुभाषियों के बीच अंतर के कारण उत्पन्न होती है। दूसरी ओर, यह स्पष्ट है कि कोई आसान तरीका नहीं है, कि कोई दस्तावेज़ प्राप्तकर्ताओं की विभिन्न आवश्यकताओं को पूरा कर सकता है, उदाहरण के लिए परिवर्तनशील पृष्ठ आकार या वांछित फ़ॉन्ट आकार, या पृष्ठ या प्रिंट के लिए सिलाई।
एक्सएसएलएफओ फ़ाइल स्वरूप
एसएल-एफओ दस्तावेज मूल रूप से एक्सएमएल दस्तावेज हैं, लेकिन वे किसी स्कीमा का पालन नहीं करते हैं। इसके स्थान पर, SL-FO दस्तावेज़ अपनी स्वयं की भाषा के विनिर्देशन में परिभाषित सिंटैक्स का पालन करते हैं। प्रत्येक XSL-FO दस्तावेज़ में दो अनुभाग आवश्यक हैं:
- एक अनुभाग जो लेबल किए गए पृष्ठ लेआउट की सूची निर्दिष्ट करता है।
- दस्तावेज़ डेटा के सभी विवरणों वाला एक खंड, मार्कअप के साथ, जो विभिन्न पृष्ठ लेआउट के माध्यम से विभिन्न पृष्ठों पर सामग्री के प्रदर्शन को निर्धारित करता है।
पृष्ठ लेआउट में पृष्ठ के गुणों का उल्लेख किया गया है, जो विशिष्ट भाषा के लिए सम्मेलनों का अनुपालन करने के लिए पाठ के लिए संगठन को परिभाषित कर सकते हैं। इसके अलावा, पृष्ठ का आकार, उनके मार्जिन और पृष्ठों के अनुक्रम (जो विषम और सम पृष्ठों के लिए अलग-अलग गुणों को प्रतिबंधित करते हैं) को भी पृष्ठ लेआउट द्वारा परिभाषित किया जाता है।
दस्तावेज़ के डेटा भाग को प्रवाह की एक श्रृंखला में विभाजित किया जाता है, जहाँ प्रत्येक प्रवाह पृष्ठ लेआउट से जुड़ा होता है। प्रवाह उनमें ब्लॉकों की एक सूची संलग्न करता है। ब्लॉक की इस सूची में इनलाइन मार्कअप फीचर या टेक्स्ट डेटा की सूची हो सकती है, या शायद दोनों एक ही समय में हो सकते हैं। दस्तावेज़ के मार्जिन पृष्ठ संख्या या अध्याय शीर्षक भी प्रदर्शित कर सकते हैं। ब्लॉक और इनलाइन तत्वों दोनों की कार्यक्षमता सीएसएस की तरह ही रहती है, फिर भी कुछ पैडिंग और मार्जिन नियम एफओ और सीएसएस के बीच भिन्न होते हैं।
पेज ओरिएंटेशन दिशा पूरी तरह से ब्लॉक और इनलाइन के विस्तार के लिए निर्दिष्ट है, इस प्रकार एफओ दस्तावेज़ अंग्रेजी से अलग भाषाओं के तहत प्रदर्शन करते हैं। एफओ विनिर्देशन की भाषा दिशाओं के विवरण के लिए बाएं और दाएं शब्दों के बजाय प्रारंभ और अंत शब्दों का उपयोग करती है। XSL-FO के मूल सामग्री मार्कअप और कैस्केडिंग नियम CSS से लिए गए हैं। XSL-FO की भाषा निम्नलिखित विशिष्टताओं से सहमत है।
एकाधिक कॉलम
एक पेज में कई कॉलम और ब्लॉक हो सकते हैं और डिफ़ॉल्ट रूप से एक कॉलम से दूसरे कॉलम तक बढ़ाए जा सकते हैं। एकाधिक पृष्ठों को अलग-अलग चौड़ाई और स्तंभों की संख्या रखने की अनुमति है। सभी एफओ विशेषताएं बहु-स्तंभ पृष्ठ की सीमाओं का पालन करती हैं।
सूचियां
एक XSL-FO सूची ब्लॉक के दो सेटों द्वारा स्थापित की जाती है जो गाल द्वारा गाल व्यवस्थित होते हैं। संकल्पनात्मक रूप से, किसी सूची में, बाईं ओर एक ब्लॉक एक संख्या, एक बुलेट या पाठ की एक स्ट्रिंग को इंगित करता है, जबकि दाईं ओर का ब्लॉक प्रत्याशित रूप से काम कर सकता है। XSL-FO सूचियों की क्रमांकन आमतौर पर XSLT द्वारा की जाती है।
टेबल्स
एक एफओ टेबल एचटीएमएल/सीएसएस टेबल के समान है। उपयोगकर्ता प्रत्येक व्यक्तिगत सेल के लिए डेटा की पंक्तियों, स्टाइलिंग जानकारी, पृष्ठभूमि रंग का चयन कर सकता है। विशिष्ट स्टाइलिंग जानकारी का उपयोग करते हुए, उपयोगकर्ता के पास टेबल हेडर पंक्ति के रूप में पहली पंक्ति का चयन करने का विशेषाधिकार है। एफओ प्रोसेसर को स्पष्ट रूप से प्रत्येक कॉलम के स्थान विनिर्देश के बारे में सूचित किया जा सकता है, या तालिका में पाठ को ऑटो-फिट करने के लिए।
अनुक्रमण
XSL-FO 1.1 में ऐसी विशेषताएँ हैं जो उचित रूप से चिह्नित तत्वों को संदर्भित करके एक अनुक्रमणिका उत्पन्न करने में मदद करती हैं।
फ़ायदे
- सामग्री-आधारित प्रकाशन के लिए उपयुक्त
- उपयोग में आसानी
- कम लागत