COS কী?
COS (Carousel Object Syntax) হল PDF ও FDF ফাইলের জন্য ব্যবহৃত সিনট্যাক্স, যা বিস্তারিতভাবে নথিভুক্ত রয়েছে ISO 32000-2:2020. আপনি যখন একটি PDF ফাইলের ভেতরের গঠন অন্বেষণ করেন, তখন আপনি COS-ই দেখতে পান।
"Carousel" ছিল Acrobat 1.0-এর কোডনেম, যখন এই সিনট্যাক্স প্রথম প্রবর্তিত হয়।
এই আটটি COS অবজেক্ট টাইপ
COS খুব ছোট একটি সিনট্যাক্স, এবং একটি PDF ফাইলের প্রায় সব কিছুই এই আটটি মৌলিক অবজেক্ট টাইপের একটি। এগুলো চিনতে পারলে PDF-এর ভেতরটা আর এলোমেলো মনে হবে না:
- বুলিয়ান ও সংখ্যা, সরাসরি লেখা থাকে।
- স্ট্রিং, গোল বন্ধনীর মধ্যে, অথবা অ্যাঙ্গেল ব্র্যাকেটের মধ্যে হেক্সাডেসিমাল আকারে।
- নেম (Name), শুরুতে একটি স্ল্যাশ দিয়ে লেখা, যেমন \/Type বা \/Page।
- অ্যারে, স্কয়ার ব্র্যাকেটের মধ্যে, এবং ডিকশনারি, ডাবল অ্যাঙ্গেল ব্র্যাকেটের মধ্যে।
- স্ট্রিম, একটি ডিকশনারির পরে কাঁচা বা কমপ্রেসড বাইটের ব্লক।
- নাল অবজেক্ট।
পেজ কনটেন্ট, ফন্ট, ইমেজ এবং মেটাডেটা এই সবই এই উপাদানগুলো দিয়ে তৈরি। একটি স্ট্রিমে সাধারণত ফাইলের বেশিরভাগ ডেটা থাকে, কারণ এতে কমপ্রেসড পেজ ডেসক্রিপশন ও এমবেড করা ইমেজ থাকে।
অবজেক্টগুলো কীভাবে আবার খুঁজে পাওয়া যায়
অবজেক্টগুলো নম্বরযুক্ত থাকে, এবং ফাইলের শেষে একটি ক্রস-রেফারেন্স টেবিলে প্রতিটি অবজেক্টের বাইট অফসেট রেকর্ড করা থাকে। রিডার ফাইলের শেষ থেকে শুরু করে, ট্রেলার পড়ে, ক্রস-রেফারেন্স টেবিল খুঁজে পায়, তারপর সরাসরি তার প্রয়োজনীয় অবজেক্টে চলে যায়। তাই একটি PDF-কে শুরু থেকে শেষ পর্যন্ত পার্স না করেও খোলা যায়। পরবর্তী ভার্সনগুলোতে এই টেবিলটি কমপ্রেসড object stream হিসেবে সংরক্ষণ করা হতে পারে, এবং incremental update প্রথম টেবিলটি আবার না লিখে দ্বিতীয় একটি টেবিল যোগ করে।