aspose.info
BN

CFF2 - কমপ্যাক্ট ফন্ট ফাইল ফরম্যাট সংস্করণ 2

হালনাগাদ

একটি CFF2 ফাইল কি?

CFF2 file format is the version 2.0 of the CFF file format and allows efficient storage of glyph outlines and metadata similar to the CFF file format. CFF2 differs from CFF in that it is intended to be used in the context of an OpenType font as a ‘sfnt’ table with the tag CFF2. এটি একটি স্বতন্ত্র প্রোগ্রাম হিসাবে ব্যবহার করা যাবে না এবং অন্যান্য OpenType টেবিলের ডেটার উপর নির্ভর করে।

CFF2 ফাইল ফরম্যাট

CFF2 file format specifications-এ অভ্যন্তরীণ ডেটা বিন্যাস, ডেটার ধরন, টেবিল এবং ফাইল বিন্যাস সম্পর্কে অন্যান্য অভ্যন্তরীণ তথ্যের বিবরণ রয়েছে৷ এটি বিকাশকারীর রেফারেন্সের জন্য উল্লেখ করা যেতে পারে। এ সম্পর্কে কিছু বিবরণ নিম্নরূপ।

ডেটা লেআউট

CFF2 ফাইল ফরম্যাটের বাইনারি ডেটা যৌক্তিকভাবে বেশ কয়েকটি পৃথক ডেটা স্ট্রাকচার হিসাবে সংগঠিত। বাইনারি ডেটার মধ্যে লেআউটটি নিম্নলিখিত টেবিলে দেখানো হয়েছে।

প্রবেশমন্তব্য
হেডারস্থির অবস্থান
শীর্ষ DICTস্থির অবস্থান
গ্লোবাল Subr INDEXস্থির অবস্থান
প্রকরণস্টোর
FDSelectশুধুমাত্র DICT INDEX ফন্টে একাধিক ফন্ট DICT থাকলেই উপস্থাপন করুন৷
ফন্ট DICT INDEX
ডিআইসিটি ফন্টের অ্যারেফন্ট DICT INDEX এ অন্তর্ভুক্ত।
প্রাইভেট ডিআইসিটিপ্রতি ফন্ট DICT.

শুধুমাত্র প্রথম তিনটি কাঠামো নির্দিষ্ট অবস্থানের উপর ভিত্তি করে। অবশিষ্টগুলি অফসেটের মাধ্যমে পৌঁছেছে এবং তাদের অর্ডার পরিবর্তন করা যেতে পারে।

তথ্যের ধরণ

CFF2 ফাইল বিন্যাস নিম্নলিখিত তথ্য প্রকার ব্যবহার করে।

নামপরিসীমাবিবরণ
uint80 থেকে 2558-বিট স্বাক্ষরবিহীন সংখ্যা
uint160 থেকে 6553516-বিট স্বাক্ষরবিহীন সংখ্যা
uint320 থেকে 429496729532-বিট স্বাক্ষরবিহীন নম্বর
অফসেটপরিবর্তিত হয়1, 2, 3, বা 4 বাইট অফসেট (একটি সূচক টেবিলে অফসাইজ ক্ষেত্র দ্বারা নির্দিষ্ট)
অফসাইজ1 থেকে 41-বাইট স্বাক্ষরবিহীন সংখ্যা একটি অফসেট ক্ষেত্র বা ক্ষেত্রগুলির আকার নির্দিষ্ট করে

এটি সমস্ত মাল্টি-বাইট সংখ্যাসূচক ডেটা এবং অফসেট ক্ষেত্রগুলিকে বিগ-এন্ডিয়ান বাইট অর্ডারে সঞ্চয় করে। CFF2 বিন্যাস প্যাডিং বাইট থেকে মুক্ত কারণ এটি কোনো প্রান্তিককরণ সীমাবদ্ধতাকে সম্মান করে না।

DICT ডেটা

CFF2 ফাইলগুলিতে একটি কমপ্যাক্ট টোকেনাইজড বিন্যাসে কী-মান জোড়া হিসাবে ফন্ট অভিধান ডেটা থাকে। অভিধান কীগুলি 1 বা 2 বাইট অপারেটর হিসাবে এনকোড করা হয় এবং অভিধানের মানগুলি পরিবর্তনশীল-আকারের সংখ্যাসূচক অপারেন্ড হিসাবে এনকোড করা হয়। তিনটি স্ট্রাকচার আছে যা DICT ডেটা ফর্ম্যাট ব্যবহার করে: Top DICT, Font DICT এবং Private DICT। বিভিন্ন আকারের পূর্ণসংখ্যার অপারেন্ড প্রকারের একটি সংখ্যা সংজ্ঞায়িত করা হয়েছে এবং নিম্নলিখিত টেবিলে দেখানো হিসাবে এনকোড করা হয়েছে (অপারেন্ডের প্রথম বাইট হল b0, দ্বিতীয়টি হল b1, এবং আরও অনেক কিছু)।

আকারb0 পরিসরমান পরিসীমামান গণনা
132 থেকে 246-107 থেকে +107b0 - 139
2247 to 250+108 to +1131(b0 - 247) * 256 + b1 + 108
2251 to 254-1131 to -108-(b0 - 251) * 256 - b1 - 108
328-32768 থেকে +32767b1 « 8
529-(2^31) থেকে +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

হেডার

বাইনারি ডেটা নীচের সারণীতে দেখানো বিন্যাস সহ একটি হেডার দিয়ে শুরু হয়।

প্রকারনামবিবরণ
uint8প্রধান সংস্করণফরম্যাট প্রধান সংস্করণ. 2.
uint8ছোট সংস্করণবিন্যাস গৌণ সংস্করণ. শূন্যে সেট করুন।
uint8হেডার সাইজহেডার সাইজ (বাইট)
uint16topDictLengthবাইটে শীর্ষ DICT কাঠামোর দৈর্ঘ্য।

তথ্যসূত্র

আরও দেখুন