ओटीएफ फाइल क्या है?
.OTf एक्सटेंशन वाली फाइल ओपन टाइप फॉन्ट फॉर्मेट को संदर्भित करती है। OTF फॉन्ट प्रारूप अधिक मापनीय है और डिजिटल टाइपोग्राफी के लिए TTF स्वरूपों की मौजूदा सुविधाओं का विस्तार करता है। माइक्रोसॉफ्ट और एडोब द्वारा विकसित, ओटीएफ पोस्टस्क्रिप्ट और ट्रू टाइप फ़ॉन्ट स्वरूपों की सुविधाओं को जोड़ती है। यह अधिकांश लेखन प्रणालियों को समायोजित करने के लिए ओटीएफ प्रारूप बनाता है और यही कारण है कि इसे प्रमुख कंप्यूटर प्लेटफॉर्म पर समान रूप से उपयोग किया जाता है। ओपन टाइप फ़ॉन्ट प्रारूप मैक ओएस एक्स और विंडोज 2000 और बाद में समर्थित है।
संक्षिप्त इतिहास
ओपन टाइप फोंट की आवश्यकता एक अधिक अभिव्यंजक फ़ॉन्ट प्रारूप की आवश्यकता के रूप में उत्पन्न हुई जो ठीक टाइपोग्राफी को संभाल सके। इसके अलावा, इसका उद्देश्य दुनिया की कई लेखन प्रणालियों के जटिल व्यवहार की आवश्यकताओं को पूरा करना था। Microsoft ने 1990 के दशक की शुरुआत में Apple की उन्नत टाइपोग्राफी तकनीक, जिसे GX टाइपोग्राफी के रूप में जाना जाता है, को लाइसेंस देने का प्रयास किया। यह ठीक नहीं रहा और परिणामस्वरूप, माइक्रोसॉफ्ट ने 1994 में अपनी ट्रू टाइप फ़ॉन्ट तकनीक को बढ़ाना शुरू कर दिया। संशोधनों में एक अधिक उपयुक्त फ़ॉन्ट प्रारूप पेश करना भी शामिल था जो एडोब के टाइप 1 (पोस्टस्क्रिप्ट) फ़ॉन्ट प्रारूपों की विशेषताओं को भी पूरा करता है।
Adobe, 1996 में, Apple के ट्रू टाइप और अपने स्वयं के टाइप 1 फ़ॉन्ट स्वरूपों दोनों का स्थान लेने के अपने प्रयासों में Microsoft में शामिल हो गया। इसके परिणामस्वरूप सीमाओं को पार करने और नए एक्सटेंशन जोड़ने के लिए दोनों अंतर्निहित फ़ॉन्ट स्वरूपों का संयोजन हुआ। इस नई तकनीक को उसी वर्ष ओपन टाइप नाम से पेश किया गया था।
ओटीएफ फ़ाइल प्रारूप निर्दिष्टीकरण
OTF विनिर्देश Microsoft द्वारा सार्वजनिक रूप से उपलब्ध हैं और इन्हें डेवलपर के दृष्टिकोण से संदर्भित किया जा सकता है। टीटीएफ की तरह, यह उसी ‘एसएफएनटी’ कंटेनर संरचना का उपयोग करता है और ट्रू टाइप विनिर्देशों के साथ संगत है। ओपनटाइप फ़ॉन्ट फ़ाइल के अंदर डेटा का उपयोग विभिन्न उद्देश्यों के लिए किया जाता है जैसे टेक्स्ट लेआउट की गणना करना, ग्लिफ को ट्रू टाइप या कॉम्पैक्ट फ़ॉन्ट प्रारूप (सीएफएफ) रूपरेखा के रूप में परिभाषित करना, वैकल्पिक ग्लिफ विवरण के रूप में मोनोक्रोमैटिक या रंग बिटमैप्स या एसवीजी दस्तावेज प्रदान करना, और मेटा-डेटा जानकारी।
ओटीएफ डेटा प्रकार
ओटीएफ फाइलें निम्नलिखित डेटा प्रकारों का उपयोग करती हैं जो सभी बिग एंडियन में हैं।
डेटा प्रकार | विवरण |
---|---|
uint8 | 8-बिट अहस्ताक्षरित पूर्णांक। |
int8 | 8-बिट हस्ताक्षरित पूर्णांक। |
uint16 | 16-बिट अहस्ताक्षरित पूर्णांक। |
int16 | 16-बिट हस्ताक्षरित पूर्णांक। |
uint24 | 24-बिट अहस्ताक्षरित पूर्णांक। |
uint32 | 32-बिट अहस्ताक्षरित पूर्णांक। |
int32 | 32-बिट हस्ताक्षरित पूर्णांक। |
फिक्स्ड | 32-बिट हस्ताक्षरित निश्चित-बिंदु संख्या (16.16) |
फवर्ड | int16 जो फ़ॉन्ट डिज़ाइन इकाइयों में मात्रा का वर्णन करता है। |
यूएफवर्ड | uint16 जो फ़ॉन्ट डिज़ाइन इकाइयों में मात्रा का वर्णन करता है। |
F2DOT14 | 16-बिट हस्ताक्षरित निश्चित संख्या जिसमें अंश के निम्न 14 बिट्स (2.14) हैं। |
LONGDATETIME | दिनांक और समय 12:00 मध्यरात्रि, 1 जनवरी, 1904, UTC के बाद से सेकंड की संख्या में दर्शाया गया है। मान को एक हस्ताक्षरित 64-बिट पूर्णांक के रूप में दर्शाया गया है। |
टैग | चार uint8s (लंबाई = 32 बिट्स) की सरणी एक तालिका, डिज़ाइन-भिन्नता अक्ष, स्क्रिप्ट, भाषा प्रणाली, सुविधा, या आधार रेखा की पहचान करने के लिए उपयोग की जाती है |
ऑफसेट16 | तालिका के लिए लघु ऑफ़सेट, uint16 के समान, NULL ऑफ़सेट = 0x0000 |
ऑफसेट32 | तालिका में लंबे समय तक ऑफ़सेट, uint32 के समान, NULL ऑफ़सेट = 0x00000000 |
संस्करण16डॉट16 | प्रमुख और लघु संस्करण संख्याओं के साथ 32-बिट मान पैक किया गया। (तालिका संस्करण संख्या देखें।) |
ओटीएफ टेबल्स निर्देशिका
एक ओटीएफ फाइल एक टेबल डायरेक्टरी से शुरू होती है। यह निर्देशिका फ़ॉन्ट फ़ाइल में तालिकाओं का शीर्ष-स्तरीय संग्रह है। फ़ाइल में फोंट की संख्या के आधार पर, तालिका निर्देशिका फ़ाइल में भिन्न स्थान पर स्थित हो सकती है। उदाहरण के लिए, यदि फ़ॉन्ट फ़ाइल में केवल एक फ़ॉन्ट है, तो तालिका निर्देशिका फ़ाइल के बाइट 0 से प्रारंभ होती है। एकाधिक ओपन टाइप फ़ॉन्ट संग्रह के मामले में, तालिका निर्देशिका की शुरुआत TTCHHeader में इंगित की गई है।
प्रकार | नाम | विवरण |
---|---|---|
uint32 | sfntVersion | 0x00010000 या 0x4F54544F (‘OTTO’) |
uint16 | numTables | तालिकाओं की संख्या। |
uint16 | searchRange | संख्या तालिका से 2 कम या उसके बराबर की अधिकतम शक्ति, बार 16 ((2**floor(log2(numTables))) * 16, जहां “**” एक घातांक ऑपरेटर है)। |
uint16 | entrySelector Log2, numTables (log2(searchRange/16), जो कि फ़्लोर (log2(numTables))) के बराबर है, की अधिकतम घात 2 से कम या बराबर है। | |
uint16 | rangeShift | numTables times 16, घटा searchRange ((numTables * 16) - searchRange). |
टेबलरिकॉर्ड | tableRecords[numTables] | तालिका रिकॉर्ड सरणी—फ़ॉन्ट में प्रत्येक शीर्ष-स्तरीय तालिका के लिए एक |
टेबल रिकॉर्ड
फ़ॉन्ट में प्रत्येक शीर्ष-स्तरीय तालिका के लिए, एक तालिका रिकॉर्ड होता है जिसमें निम्नलिखित फ़ील्ड होते हैं।
प्रकार | नाम | विवरण |
---|---|---|
टैग | टेबलटैग | तालिका पहचानकर्ता। |
uint32 | चेकसम | इस तालिका के लिए चेकसम। |
ऑफसेट32 | ऑफसेट | फ़ॉन्ट फ़ाइल की शुरुआत से ऑफसेट. |
uint32 | इस तालिका की लंबाई. |
OpenType फ़ॉन्ट फ़ाइल में प्रत्येक तालिका को तालिका टैग के रूप में ज्ञात नामों द्वारा दर्शाया जाता है। एरे में सभी रिकॉर्ड्स को टैग द्वारा आरोही क्रम में क्रमबद्ध करना आवश्यक है।