একটি XSL-FO ফাইল কি?
XSL-FO (XSL ফরম্যাটিং অবজেক্ট) হল XML ডকুমেন্ট ফরম্যাট করার জন্য একটি শক্তিশালী স্টাইলশীট ভাষা। কাগজ এবং মুদ্রণের আবদ্ধ ফর্মের শব্দার্থবিদ্যা XSL-FO দ্বারা প্রকাশ করা হয় যখন মাত্রা স্থির করা হয়। HTML এর বিপরীতে, যা পরিবর্তনশীল মাত্রা সহ একটি ব্রাউজার উইন্ডোর সীমাহীন ফর্মের শব্দার্থকে উপস্থাপন করে। XSL-FO দ্বারা ফরম্যাট করা XML নথিগুলি বেশিরভাগ PDF ফাইল তৈরি করতে ব্যবহৃত হয়। XSL (এক্সটেনসিবল স্টাইলশীট ল্যাঙ্গুয়েজ) হল বৈশিষ্ট্য-সম্পূর্ণ W3C প্রযুক্তির একটি সেট যা এই ভাষার XML নথি এবং XSL-FO অংশ ফর্ম্যাটিং এবং বিনিময়ের জন্য ডিজাইন করার উদ্দেশ্যে। XSLT এবং XPath হল XSL এর অন্যান্য অংশ।
এটি প্রস্তাব করা হয়েছে যে XML নথিগুলিকে প্রথমে XSL-FO-তে রূপান্তরিত করা উচিত, 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 ব্যবহার করার সাধারণ মানদণ্ড হল যে ব্যবহারকারী FO-তে লেখার পরিবর্তে একটি XML ভাষায় একটি নথি লেখেন। এর পরে, একটি XSLT রূপান্তর ঘটে। এই XSLT রূপান্তর XML-কে XSL-FO-তে রূপান্তরের জন্য দায়ী। যত তাড়াতাড়ি, XSL-FO নথি তৈরি করা হয়, এটি তারপর একটি FO প্রসেসর নামক একটি অ্যাপ্লিকেশনের কাছে হস্তান্তর করা হয়। FO প্রসেসরগুলি এই নথিটিকে পাঠযোগ্য এবং একটি মুদ্রণযোগ্য নথিতে রূপান্তর করার জন্য দায়ী৷ পিডিএফ ফাইল বা পিএস হল XSL-FO এর সবচেয়ে সাধারণ আউটপুটের উদাহরণ। কিন্তু এর মানে এই নয় যে FO প্রসেসর শুধুমাত্র আউটপুট হিসাবে এই দুই ধরনের বিন্যাস তৈরি করতে পারে। কিছু FO প্রসেসর RTF ফাইলে আউটপুট দিতে পারে অথবা ব্যবহারকারীর GUI-তে একটি উইন্ডোও উপস্থিত হতে পারে, এই উইন্ডোটি পৃষ্ঠার ক্রম এবং তাদের বিষয়বস্তু প্রদর্শন করে।
একটি XSL-FO ডকুমেন্ট অর্থে একটি PDF বা PS থেকে আলাদা, এটি শেষ পর্যন্ত বিভিন্ন পৃষ্ঠায় পাঠ্য বিন্যাসকে সংজ্ঞায়িত করে না। সম্ভবত, এটি পৃষ্ঠাগুলিকে স্টাইল করে এবং বিষয়বস্তু প্রদর্শনের জন্য স্থান নির্ধারণ করে। অধিকন্তু, একটি FO প্রসেসর FO নথি দ্বারা নির্দিষ্ট সীমানার মধ্যে পাঠ্যকে সংগঠিত করে। এই স্পেসিফিকেশন এমনকি বিভিন্ন FO প্রসেসরকে ফলস্বরূপ-তৈরি পৃষ্ঠা অনুযায়ী আচরণ করার অনুমতি দেয়। এই ধরনের আচরণের একটি উদাহরণ হল হাইফেনেশন, কিছু FO প্রসেসর শব্দ হাইফেনেট করতে পারে যাতে একটি লাইন ভেঙে যায়, যখন কিছু প্রসেসর এই বিকল্পটি নির্বাচন করে না। এটি প্রসেসরের উপর নির্ভর করে বিভিন্ন হাইফেনেশন অ্যালগরিদম বেছে নিতে যা তাদের প্রয়োজনীয়তার সাথে মেলে। এই হাইফেনেশন অ্যালগরিদমগুলি খুব সহজ বা আরও জটিল হতে পারে। কিছু পরিস্থিতিতে, XSL-FO স্পেসিফিকেশন স্পষ্টভাবে FO প্রসেসরকে অনুমোদন করে, লেআউটের প্রসঙ্গে কিছু পছন্দ।
FO প্রসেসরের মধ্যে এই বৈচিত্র্য বিভিন্ন ফলাফল তৈরি করে, যেগুলো সম্পর্কে প্রসেসররা প্রায়শই উদ্বিগ্ন থাকে। কারণ XSL-FO-এর সাধারণ ফোকাস হল পেজড/মুদ্রিত নথি তৈরি করা। XSL-FO নথিগুলি সাধারণত মধ্যস্থতাকারী হিসাবে কাজ করে, তাদের প্রধান কাজ হল PDF ফাইল বা একটি নথি তৈরি করা যা বিতরণ করার জন্য আউটপুট হিসাবে প্রিন্ট করা যেতে পারে। HTML/CSS বা XSL-FO-তে, ফরম্যাটিং ল্যাঙ্গুয়েজ ইনপুট করার পরিবর্তে পিডিএফকে শেষ ফলাফল হিসাবে বিতরণ করা ইঙ্গিত দেয় যে রিসিভাররা ফলাফলের বহুমুখিতা দ্বারা প্রভাবিত হয় না যা ফর্ম্যাটিং ভাষার দোভাষীদের মধ্যে পার্থক্যের কারণে তৈরি হয়। অন্যদিকে, এটা স্পষ্ট যে কোন সহজ উপায় নেই, যে একটি নথি প্রাপকদের বিভিন্ন চাহিদা পূরণ করতে পারে, যেমন পরিবর্তনশীল পৃষ্ঠার আকার বা পছন্দসই ফন্টের আকার, বা পৃষ্ঠা বা মুদ্রণের জন্য সেলাই করা।
এক্সএসএলএফও ফাইল ফরম্যাট
SL-FO নথিগুলি মূলত XML নথি, তবে তারা কোনও স্কিমা অনুসরণ করে না। এর জায়গায়, SL-FO নথিগুলি তাদের নিজস্ব ভাষার স্পেসিফিকেশনে সংজ্ঞায়িত সিনট্যাক্স অনুসরণ করে। প্রতিটি XSL-FO নথিতে দুটি বিভাগ প্রয়োজন:
- একটি বিভাগ যা লেবেলযুক্ত পৃষ্ঠা লেআউটগুলির একটি তালিকা নির্দিষ্ট করে৷
- মার্কআপ সহ নথির ডেটার সমস্ত বিবরণ সহ একটি বিভাগ, যা বিভিন্ন পৃষ্ঠা বিন্যাসের মাধ্যমে বিভিন্ন পৃষ্ঠায় বিষয়বস্তু প্রদর্শন নির্ধারণ করে।
পৃষ্ঠার বৈশিষ্ট্যগুলি পৃষ্ঠা বিন্যাসে উল্লেখ করা হয়েছে, যা পাঠ্যের জন্য সংগঠনকে সংজ্ঞায়িত করতে পারে, নির্দিষ্ট ভাষার জন্য নিয়ম মেনে চলতে। অধিকন্তু, পৃষ্ঠার আকার, তাদের মার্জিন এবং পৃষ্ঠাগুলির ক্রম (যা বিজোড় এবং জোড় পৃষ্ঠাগুলির জন্য বিভিন্ন বৈশিষ্ট্য অনুমোদন করে) এছাড়াও পৃষ্ঠা বিন্যাস দ্বারা সংজ্ঞায়িত করা হয়।
নথির ডেটা অংশটি প্রবাহের একটি সিরিজে বিভক্ত, যেখানে প্রতিটি প্রবাহ একটি পৃষ্ঠা বিন্যাসের সাথে সংযুক্ত থাকে। প্রবাহগুলি তাদের মধ্যে ব্লকগুলির একটি তালিকা আবদ্ধ করে। ব্লকের এই তালিকায় ইনলাইন মার্কআপ বৈশিষ্ট্য বা টেক্সট ডেটার একটি তালিকা থাকতে পারে বা একই সময়ে উভয়ই থাকতে পারে। নথির মার্জিন পৃষ্ঠা নম্বর বা অধ্যায়ের শিরোনামও প্রদর্শন করতে পারে। উভয় ব্লক এবং ইনলাইন উপাদানের কার্যকারিতা CSS-এর মতোই থাকে, তবুও কিছু প্যাডিং এবং মার্জিন নিয়ম 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-এ এমন বৈশিষ্ট্য রয়েছে যা সঠিকভাবে চিহ্নিত-আপ উপাদানের উল্লেখ করার মাধ্যমে একটি সূচক তৈরি করতে সাহায্য করে।
উপকারিতা
বিষয়বস্তু-ভিত্তিক প্রকাশনার জন্য উপযুক্ত
ব্যবহারে সহজ
কম খরচে