TTF बनाम OTF बनाम WOFF2: फ़ॉन्ट प्रारूपों की तुलना
इन तीन प्रारूपों का संक्षिप्त इतिहास
TrueType (TTF) 1989 में Apple और Microsoft के एक संयुक्त प्रयास से उभरा। उनका लक्ष्य ऑपरेटिंग सिस्टम को फ़ॉन्ट रेंडरिंग पर सीधा नियंत्रण देना था, जिससे Adobe के PostScript लाइसेंसिंग पर उनकी निर्भरता खत्म हो जाए। एक TTF फ़ाइल में ग्लिफ़ आउटलाइन को द्विघात बेज़ियर कर्व्स (quadratic Bézier curves) के रूप में संग्रहीत किया जाता है और इसमें सब कुछ—मेट्रिक्स, हिंटिंग निर्देश, कर्निंग टेबल—एक ही बाइनरी में बंडल किया जाता है। 90 के दशक के अधिकांश समय तक, यह Windows और macOS दोनों पर डेस्कटॉप फ़ॉन्ट्स का निर्विवाद राजा था। फिर 1996 में OpenType (OTF) आया, जिसे Microsoft ने विकसित किया और जल्द ही Adobe भी इसमें शामिल हो गया। शुरुआत से कुछ बनाने के बजाय, OpenType ने बड़ी चतुराई से TrueType कंटेनर का विस्तार किया। एक OTF फ़ाइल या तो TrueType के द्विघात कर्व्स का उपयोग कर सकती है या Adobe के क्यूबिक PostScript कर्व्स (CFF आउटलाइन) का, यही कारण है कि आप 'CFF-आधारित OTF' शब्द देखते हैं। इससे भी महत्वपूर्ण बात यह है कि इस प्रारूप ने लेआउट टेबल—GSUB और GPOS—का एक शक्तिशाली सेट पेश किया, जो लिगरेचर, स्मॉल कैप्स, स्वैश और प्रासंगिक विकल्पों जैसी सुविधाओं को अनलॉक करता है। अरबी जैसी जटिल लिपि के लिए एक परिष्कृत OTF में हजारों ग्लिफ़ प्रतिस्थापन नियम हो सकते हैं। WOFF2 (Web Open Font Format 2) एक बिल्कुल अलग खेल खेलता है। 2018 में W3C अनुशंसा के रूप में अनुमोदित, यह एक नया आउटलाइन प्रारूप नहीं है, बल्कि एक अति-कुशल कंप्रेशन रैपर है। यह एक मौजूदा TTF या OTF लेता है, उस पर ब्रोटली कंप्रेशन (Brotli compression) और एक विशेष फ़ॉन्ट-अवेयर प्री-प्रोसेसिंग स्टेप लागू करता है, और एक ऐसी फ़ाइल बनाता है जो अक्सर 30-50% छोटी होती है। WOFF2 विशेष रूप से वेब डिलीवरी के लिए बनाया गया था। ब्राउज़र इसे तुरंत डीकंप्रेस करते हैं, इसलिए यह आपके OS फ़ॉन्ट मैनेजर तक कभी नहीं पहुँचता। इस अंतर को समझना—आउटलाइन प्रारूप बनाम डिलीवरी प्रारूप—इन्हें उपयोग करने का तरीका समझने की कुंजी है।
फ़ाइल का आकार और कंप्रेशन: वे आँकड़े जो वास्तव में मायने रखते हैं
कच्चे फ़ाइल का आकार आपको सबसे ज़्यादा चुभता है: पेज लोड होने का समय, ऐप बंडल का आकार, और CDN बैंडविड्थ की लागत। आइए कुछ ठोस आँकड़ों को देखें। Source Sans Pro Regular जैसे मध्यम रूप से जटिल लैटिन टाइपफेस का TTF के रूप में वजन लगभग 260 KB होता है। OTF संस्करण, अधिक कुशल CFF आउटलाइन का उपयोग करते हुए, लगभग 155 KB का होता है। ऐसा इसलिए है क्योंकि CFF के क्यूबिक कर्व्स अक्सर TrueType के द्विघात कर्व्स की तुलना में कम बिंदुओं के साथ आकृतियों का वर्णन कर सकते हैं, जिसके कारण CFF-आधारित OTF लैटिन लिपियों के लिए 20-40% छोटे होते हैं। अब, उसी फ़ॉन्ट को WOFF2 में बदलें और आपको लगभग 75 KB की फ़ाइल मिलती है। यह मूल TTF से 71% की भारी कमी है। CJK (चीनी, जापानी, कोरियाई) फ़ॉन्ट के साथ, कहानी बदल जाती है। Noto Sans CJK SC जैसा एक पूर्ण-कवरेज CJK TTF 20 MB से अधिक तक बढ़ सकता है। WOFF2 कंप्रेशन मदद करता है, शायद इसे 13-15 MB तक ले आता है, लेकिन यह कोई जादुई समाधान नहीं है। बड़े फ़ॉन्ट्स के लिए असली समाधान सब-सेटिंग (subsetting) है, जो साधारण प्रारूप रूपांतरण से एक अलग प्रक्रिया है। WOFF2 अकेले 65,000 ग्लिफ़ वाले फ़ॉन्ट को नहीं बचाएगा। जहाँ तक WOFF (संस्करण 1) का सवाल है, यह मूल रूप से एक संग्रहालय की वस्तु है। यह zlib कंप्रेशन का उपयोग करता था और WOFF2 द्वारा पूरी तरह से प्रतिस्थापित कर दिया गया है। caniuse.com के अनुसार, WOFF2 समर्थन 2024 में 97%+ वैश्विक उपयोगकर्ताओं तक पहुँच गया था, जिसमें आपके लिए महत्वपूर्ण हर आधुनिक ब्राउज़र शामिल है। केवल कुछ पुराने एम्बेडेड ब्राउज़र या कियोस्क हैं जो अभी भी Internet Explorer 11 चला रहे हैं। किसी भी नए वेब प्रोजेक्ट के लिए, WOFF2 सिर्फ सबसे अच्छा विकल्प नहीं है; यही एकमात्र समझदारी भरा विकल्प है।
OpenType फ़ीचर्स: जहाँ OTF वास्तव में TTF से बेहतर प्रदर्शन करता है
एक अच्छे OTF और एक TTF के बीच सबसे महत्वपूर्ण तकनीकी अंतर उन्नत OpenType लेआउट सुविधाओं तक पहुँच है। जबकि दोनों फ़ाइल प्रकार तकनीकी रूप से आवश्यक GSUB (Glyph Substitution) और GPOS (Glyph Positioning) टेबल रख सकते हैं, पेशेवर टाइप फाउंड्री लगभग विशेष रूप से अपने समृद्ध फ़ीचर सेट को अपने OTF रिलीज़ में बनाती हैं। वास्तविक दुनिया में, अच्छी चीज़ें OTF में ही होती हैं। ये सुविधाएँ वास्तव में क्या करती हैं? लिगरेचर 'fi' और 'fl' जैसे सामान्य अनुक्रमों को एक ही, पूरी तरह से तैयार किए गए ग्लिफ़ से बदल देते हैं, जिससे टकराव को रोका जा सके। विवेकाधीन लिगरेचर (Discretionary ligatures) और आगे जाते हैं, 'ct' या 'Th' जैसे जोड़ों को एक सुलेख शैली के लिए कलात्मक रूप से जोड़ते हैं। स्मॉल कैप्स पूरी ऊँचाई वाले कैपिटल को ऑप्टिकली आकार के छोटे संस्करणों से प्रतिस्थापित करते हैं—ये फिर से बनाए गए ग्लिफ़ हैं, न कि सिर्फ़ छोटे किए गए अक्षर। ओल्डस्टाइल फ़िगर्स आपको आरोही और अवरोही वाले अंक देते हैं, जिससे वे टेक्स्ट की एक पंक्ति में खूबसूरती से घुल-मिल जाते हैं। Minion Pro जैसे टाइपफेस के लिए एक एकल OTF फ़ाइल में 1,700 से अधिक ग्लिफ़ और इनमें से दर्जनों सुविधाएँ हो सकती हैं, जिन्हें 'onum,' 'smcp,' 'calt,' 'swsh,' और 'hist' के रूप में टैग किया गया है। CSS में, आप उन्हें `font-feature-settings: 'onum' 1;` या `font-variant-numeric: oldstyle-nums;` के साथ सक्षम करते हैं। Adobe InDesign में, वे आपको Type > OpenType के अंतर्गत मिलेंगे। यहाँ तक कि Microsoft Word 365 में भी उन्नत फ़ॉन्ट डायलॉग में कुछ समर्थन है, हालाँकि यह Adobe के टूल की तुलना में कम व्यापक है। इन तालिकाओं के बिना एक TTF फ़ाइल इनमें से कुछ भी प्रदान नहीं करती, चाहे कोई भी एप्लिकेशन हो। यदि आपका डिज़ाइन उचित स्मॉल कैप्स, प्रासंगिक विकल्पों, या अरबी या देवनागरी जैसी लिपियों के लिए आवश्यक जटिल आकार पर निर्भर करता है, तो OTF सिर्फ़ एक पसंद नहीं है। यह एक ज़रूरत है।
हिंटिंग और रेंडरिंग: डेस्कटॉप बनाम स्क्रीन के संदर्भ
फ़ॉन्ट हिंटिंग एक फ़ॉन्ट फ़ाइल के अंदर निर्देशों का एक सेट है जो ग्लिफ़ आउटलाइन को समायोजित करता है ताकि वे स्क्रीन पर छोटे आकार में तेज दिखें। जिसने भी धुंधले 12px टेक्स्ट को देखने के लिए आँखें सिकोड़ी हैं, वह खराब रेंडरिंग का दर्द जानता है; हिंटिंग इसका इलाज है। इसके बिना, छोटे 'n' का एक ऊर्ध्वाधर तना एक पिक्सेल चौड़ा हो सकता है जबकि दूसरा दो, जिससे एक भद्दा, असमान रूप बनता है। अच्छी हिंटिंग उन स्ट्रोक्स को पिक्सेल ग्रिड से संरेखित करती है। TTF फ़ॉन्ट अपनी मैन्युअल TrueType हिंटिंग के लिए प्रसिद्ध हैं, जो एक जटिल बाइटकोड भाषा है जो डिजाइनरों को हर पिक्सेल पर बारीक नियंत्रण देती है। यह बेहद मेहनत वाला काम है—Arial जैसा पूरी तरह से हाथ से हिंट किया गया फ़ॉन्ट सैकड़ों घंटों का प्रतिनिधित्व करता है। इसका फ़ायदा GDI रेंडरर का उपयोग करने वाले पुराने Windows सिस्टम पर बहुत बड़ा था। CFF-आधारित OTF फ़ॉन्ट सरल PostScript हिंटिंग का उपयोग करते हैं। macOS पर, जो लंबे समय से एक ऐसे रेंडरर का उपयोग कर रहा है जो काफी हद तक हिंटिंग को अनदेखा करता है, यह अंतर अप्रासंगिक है। Windows पर, ClearType रेंडरर (Vista के बाद से डिफ़ॉल्ट) ने इस अंतर को काफ़ी कम कर दिया है। और हाई-DPI डिस्प्ले पर—मूल रूप से कोई भी आधुनिक फ़ोन या "रेटिना" स्क्रीन—हिंटिंग लगभग अप्रासंगिक हो जाती है। पिक्सेल इतने छोटे होते हैं कि उन ग्रिड-संरेखण समस्याओं का दिखना असंभव है। WOFF2 हिंटिंग की कहानी को नहीं बदलता; यह सिर्फ उस मूल फ़ॉन्ट से हिंटिंग डेटा को संरक्षित करता है जिसे इसने कंप्रेस किया है। यदि आप एक अच्छी तरह से हिंट किए गए TTF को परिवर्तित करते हैं, तो वे हिंट्स साथ में आते हैं। इसका व्यावहारिक निष्कर्ष क्या है? यदि आपके प्राथमिक उपयोगकर्ता नॉन-HD Windows मॉनिटर पर हैं और आप 16px से कम का टेक्स्ट प्रदर्शित कर रहे हैं, तो एक हाथ से हिंट किए गए TTF का अभी भी एक दृश्यमान लाभ है। आधुनिक हार्डवेयर पर वेब उपयोग के लिए, अंतर को पहचानना लगभग असंभव है।
प्रत्येक प्रारूप का उपयोग कब करें: एक व्यावहारिक निर्णय मार्गदर्शिका
डेस्कटॉप इंस्टॉलेशन के लिए—आपके OS, डिज़ाइन ऐप्स, या ऑफिस सुइट में—आपको TTF या OTF की आवश्यकता होती है। Windows और macOS दोनों ही दोनों को मूल रूप से समर्थन करते हैं, जैसा कि Linux डिस्ट्रोस भी करते हैं। निर्णय आपकी ज़रूरतों पर आता है। यदि आप एक डिज़ाइनर हैं जिसे InDesign में लिगरेचर, स्वैश और अन्य उन्नत टाइपोग्राफिक सुविधाओं की आवश्यकता है, तो आप OTF चाहते हैं। यदि आप एक IT एडमिन हैं जो Windows मशीनों के एक बेड़े में एक कॉर्पोरेट फ़ॉन्ट तैनात कर रहे हैं, तो एक हिंटेड TTF अक्सर सुरक्षित, अधिक संगत विकल्प होता है। वेब डिलीवरी सरल है: WOFF2। बस, बात खत्म। आपके CSS `@font-face` घोषणा में हमेशा WOFF2 को पहले सूचीबद्ध करना चाहिए: `src: url('font.woff2') format('woff2'), url('font.woff') format('woff');`। वेब पर एक कच्ची TTF या OTF फ़ाइल परोसना प्रदर्शन के लिहाज़ से एक अपराध है। आप उपयोगकर्ताओं को आवश्यकता से 2-3 गुना अधिक डेटा डाउनलोड करने के लिए मजबूर कर रहे हैं। यदि आप किसी पुराने थीम को अपनी स्टाइलशीट में .ttf का संदर्भ देते हुए देखते हैं, तो इसे WOFF2 के लिए बदलना एक त्वरित और आसान प्रदर्शन सुधार है। मोबाइल ऐप्स एक अलग संदर्भ हैं। iOS और Android दोनों ही ऐप पैकेज के अंदर बंडल की गई TTF और OTF फ़ाइलों का मूल रूप से उपयोग करते हैं; कोई भी इस उद्देश्य के लिए WOFF2 का उपयोग नहीं करता है, क्योंकि यह केवल ब्राउज़र-डिलीवरी प्रारूप है। Flutter ऐप्स TTF या OTF को एसेट्स डायरेक्टरी में बंडल करते हैं और उन्हें `pubspec.yaml` में घोषित करते हैं, और React Native भी एक समान पैटर्न का पालन करता है। गेम इंजन की अपनी पसंद होती है। Unity का TextMeshPro अपने फ़ॉन्ट एसेट्स उत्पन्न करने के लिए OTF और TTF के साथ काम करता है। Unreal Engine का आयातक TTF पसंद करता है। कोई भी सीधे WOFF2 फ़ाइल आयात नहीं करेगा, इसलिए यदि आपके पास केवल यही है, तो आपको इसे पहले TTF या OTF में वापस बदलने की आवश्यकता होगी।
CocoConvert के साथ प्रारूपों के बीच रूपांतरण
इन प्रारूपों के बीच स्विच करने की आवश्यकता है? CocoConvert सबसे महत्वपूर्ण रूपांतरण पथों को संभालता है: TTF से WOFF2, OTF से WOFF2, WOFF2 से TTF, और यहाँ तक कि OTF से TTF भी। हमारी प्रक्रिया `fonttools` द्वारा संचालित है, जो Google Fonts द्वारा उपयोग की जाने वाली वही उद्योग-मानक Python लाइब्रेरी है। यह सुनिश्चित करता है कि आपकी परिवर्तित फ़ाइलें मानकों के अनुरूप हैं और OpenType टेबल जैसे GSUB, GPOS, नाम रिकॉर्ड, और हिंटिंग डेटा संरक्षित हैं। एक वेब-तैयार फ़ॉन्ट बनाने के लिए, बस अपनी .ttf फ़ाइल को हमारे फ़ॉन्ट रूपांतरण पृष्ठ पर अपलोड करें, आउटपुट के रूप में WOFF2 चुनें, और कन्वर्ट पर क्लिक करें। एक सामान्य लैटिन फ़ॉन्ट सेकंडों में प्रोसेस हो जाता है। परिणामी WOFF2 फ़ाइल मूल के सभी मेट्रिक्स और लेआउट सुविधाओं को रखती है, जिसमें डिफ़ॉल्ट रूप से कुछ भी नहीं हटाया जाता है। बेशक, CocoConvert सब कुछ नहीं करता है। यह सब-सेटिंग (subsetting) नहीं करता है। यदि आप 20 MB की CJK फ़ॉन्ट को परिवर्तित करते हैं, तो आपको एक कंप्रेस्ड 13 MB की WOFF2 फ़ाइल मिलेगी, न कि एक 50 KB की छोटी फ़ाइल जिसमें केवल वे वर्ण हों जिनकी आपको आवश्यकता है। उसके लिए, आपको `pyftsubset` जैसे समर्पित टूल की आवश्यकता होगी। CocoConvert लाइसेंसिंग मेटाडेटा को भी नहीं बदलता है। यदि किसी फ़ॉन्ट का एम्बेडिंग फ्लैग (fsType) उसे वेब उपयोग से प्रतिबंधित करता है, तो वह फ्लैग परिवर्तित फ़ाइल में बना रहता है। याद रखें: एक फ़ॉन्ट को परिवर्तित करने से उसका लाइसेंस नहीं बदल जाता है। यदि आपके पास वेब पर फ़ॉन्ट का उपयोग करने का अधिकार नहीं है, तो उसे WOFF2 में परिवर्तित करने से वह कानूनी नहीं हो जाएगा। WOFF2 को वापस TTF में परिवर्तित करना अविश्वसनीय रूप से उपयोगी है जब आप एक वेब फ़ॉन्ट पाते हैं और उसे डेस्कटॉप उपयोग के लिए स्थापित करने की आवश्यकता होती है। डीकंप्रेसन दोषरहित (lossless) होता है, जिसका अर्थ है कि परिणामी TTF में आउटलाइन डेटा होता है जो मूल स्रोत के बाइट-दर-बाइट समान होता है। रूपांतरण किसी भी WOFF2-विशिष्ट अनुकूलन को सफाई से उलट देता है, जिससे आपको एक पूरी तरह से प्रयोग करने योग्य डेस्कटॉप फ़ाइल मिलती है।
सारांश: बिना ज़्यादा सोचे सही प्रारूप चुनना
चलिए सीधे मुद्दे पर आते हैं। ये तीन प्रारूप विनिमेय विकल्प नहीं हैं। वे अलग-अलग कामों के लिए अलग-अलग उपकरण हैं। TTF सार्वभौमिक एडॉप्टर है। हर प्लेटफ़ॉर्म जो फ़ॉन्ट्स के साथ काम करता है, TTF को संभाल सकता है। यह तब सही विकल्प है जब आपको अधिकतम संगतता की आवश्यकता हो, आप पुराने Windows परिवेशों को लक्षित कर रहे हों जहाँ इसकी विशिष्ट हिंटिंग चमकती है, या जब कोई गेम इंजन जैसा टूल इसकी मांग करता है। इसकी प्राथमिक कमजोरी CFF-आधारित OTF की तुलना में एक बड़ा फ़ाइल आकार और उन्नत टाइपोग्राफिक सुविधाओं की सामान्य कमी है। OTF डेस्कटॉप काम के लिए पेशेवरों की पसंद है। जब कोई टाइप फाउंड्री गंभीर डिज़ाइन के लिए एक फ़ॉन्ट बेचती है, तो OTF वह संस्करण है जो आप चाहते हैं। इसमें पूरा OpenType फ़ीचर सेट होता है, इसके CFF आउटलाइन कॉम्पैक्ट होते हैं, और हर आधुनिक डिज़ाइन ऐप इसका समर्थन करता है। इसका एकमात्र वास्तविक दोष यह है कि यह वेब डिलीवरी के लिए बहुत बड़ा है। HTTP पर एक कच्चा OTF परोसना बैंडविड्थ की बर्बादी है। WOFF2 सिर्फ़ और सिर्फ़ एक चीज़ के लिए है: वेब। यह एक नए प्रकार का फ़ॉन्ट नहीं है, बस ब्राउज़रों के लिए शानदार ढंग से कंप्रेस किया गया एक मौजूदा फ़ॉन्ट है। अपने `@font-face` नियमों में WOFF2 का उपयोग करें। हमेशा। मूल TTF या OTF को अपनी स्रोत फ़ाइल के रूप में रखें, लेकिन WOFF2 को डिलीवरी के लिए एक डिस्पोजेबल, अनुकूलित संपत्ति मानें। किसी भी नए प्रोजेक्ट के लिए सरल कार्यप्रवाह यहाँ है: एक फाउंड्री से एक गुणवत्ता वाला OTF फ़ॉन्ट प्राप्त करें। अपनी वेबसाइट के लिए WOFF2 संस्करण बनाने के लिए CocoConvert का उपयोग करें। किसी भी प्रिंट या डिज़ाइन कार्य के लिए मूल OTF रखें। और यदि आप कभी खुद को केवल एक WOFF2 फ़ाइल के साथ पाते हैं और इसे अपने डेस्कटॉप पर चाहते हैं, तो इसे वापस TTF में बदल दें। यह इतना ही सीधा है।