aspose.info
HI

CFF2 - कॉम्पैक्ट फ़ॉन्ट फ़ाइल स्वरूप संस्करण 2

अपडेट किया गया

CFF2 फ़ाइल क्या है?

CFF2 फ़ाइल स्वरूप CFF फ़ाइल स्वरूप का संस्करण 2.0 है और CFF फ़ाइल स्वरूप के समान ग्लिफ़ रूपरेखा और मेटाडेटा के कुशल भंडारण की अनुमति देता है। CFF2 CFF से इस मायने में भिन्न है कि इसका उपयोग OpenType फ़ॉन्ट के संदर्भ में CFF2 टैग के साथ ‘sfnt’ तालिका के रूप में किया जाना है। इसे स्टैंड-अलोन प्रोग्राम के रूप में उपयोग नहीं किया जा सकता है और यह अन्य ओपन टाइप टेबल में डेटा पर निर्भर करता है।

CFF2 फ़ाइल स्वरूप

CFF2 फ़ाइल स्वरूप विनिर्देश में फ़ाइल स्वरूप के बारे में आंतरिक डेटा लेआउट, डेटा प्रकार, तालिकाओं और अन्य आंतरिक जानकारी के बारे में विवरण शामिल हैं। इसे डेवलपर के संदर्भ के लिए संदर्भित किया जा सकता है। इनके बारे में कुछ विवरण इस प्रकार हैं।

डेटा लेआउट

CFF2 फ़ाइल स्वरूप का बाइनरी डेटा तार्किक रूप से कई अलग-अलग डेटा संरचनाओं के रूप में व्यवस्थित है। बाइनरी डेटा के भीतर लेआउट निम्न तालिका में दिखाया गया है।

प्रविष्टिटिप्पणियां
शीर्षकनिश्चित स्थान
शीर्ष डीआईसीटीनिश्चित स्थान
ग्लोबल सुब्र इंडेक्सनिश्चित स्थान
भिन्नतास्टोर
FDSelectकेवल तभी प्रस्तुत करें जब फ़ॉन्ट DICT INDEX में एक से अधिक फ़ॉन्ट DICT हों।
Font DICT INDEX
फ़ॉन्ट DICT की सरणीफ़ॉन्ट DICT INDEX.
निजी डीआईसीटीएक प्रति फ़ॉन्ट DICT.

केवल पहली तीन संरचनाएं निश्चित स्थानों पर आधारित हैं। शेष ऑफ़सेट के माध्यम से पहुँचा जाता है, और उनके क्रम को बदला जा सकता है।

डेटा के प्रकार

CFF2 फ़ाइल स्वरूप निम्न डेटा प्रकारों का उपयोग करता है।

नामश्रेणीविवरण
uint80 से 2558-बिट अहस्ताक्षरित संख्या
uint160 से 6553516-बिट अहस्ताक्षरित संख्या
uint320 से 429496729532-बिट अहस्ताक्षरित संख्या
ऑफ़सेटभिन्न1, 2, 3, या 4 बाइट ऑफ़सेट (इंडेक्स टेबल में ऑफ़साइज़ फ़ील्ड द्वारा निर्दिष्ट)
ऑफसाइज1 से 41-बाइट अहस्ताक्षरित संख्या ऑफ़सेट फ़ील्ड या फ़ील्ड के आकार को निर्दिष्ट करती है

यह सभी बहु-बाइट संख्यात्मक डेटा और ऑफ़सेट फ़ील्ड को बड़े-एंडियन बाइट क्रम में संग्रहीत करता है। CFF2 प्रारूप पैडिंग बाइट्स से मुक्त है क्योंकि यह किसी भी संरेखण प्रतिबंध का सम्मान नहीं करता है।

डीआईसीटी डेटा

CFF2 फाइलों में एक कॉम्पैक्ट टोकनयुक्त प्रारूप में कुंजी-मूल्य जोड़े के रूप में फ़ॉन्ट डिक्शनरी डेटा होता है। डिक्शनरी कीज़ को 1 या 2 बाइट ऑपरेटरों के रूप में एन्कोड किया गया है और डिक्शनरी वैल्यू को वैरिएबल-साइज़ न्यूमेरिक ऑपरेंड के रूप में एन्कोड किया गया है। डीआईसीटी डेटा प्रारूप का उपयोग करने वाली तीन संरचनाएं हैं: शीर्ष डीआईसीटी, फ़ॉन्ट डीआईसीटी और निजी डीआईसीटी। विभिन्न आकारों के कई पूर्णांक ऑपरेंड प्रकारों को परिभाषित किया गया है और उन्हें एन्कोड किया गया है जैसा कि निम्न तालिका में दिखाया गया है (ऑपरेंड का पहला बाइट b0 है, दूसरा b1 है, और इसी तरह)।

आकारb0 रेंजवैल्यू रेंजवैल्यू कैलकुलेशन
132 से 246-107 से +107b0 - 139
2247 से 250+108 से +1131(b0 - 247) * 256 + b1 + 108
2251 से 254-1131 से -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शीर्षलेख आकारहैडर आकार (बाइट्स).
uint16टॉपडिक्टलेंथबाइट्स में शीर्ष DICT संरचना की लंबाई।

संदर्भ

यह भी देखें