वेब ओपन फ़ॉन्ट फ़ॉर्मेट (.woff)
W3C স্ট্যান্ডার্ডওয়েব ওপেন ফন্ট ফরম্যাট (WOFF) হল ডব্লিউ৩সি (W3C) দ্বারা অনুমোদিত ঐতিহাসিক প্রথম প্রজন্মের ওপেন স্ট্যান্ডার্ড ওয়েব ফন্ট ফরম্যাট, যা zlib কম্প্রেশন এবং XML লাইসেন্সিং মেটাডেটা সহ স্ট্যান্ডার্ড TrueType বা OpenType ফন্টগুলোকে মোড়কজাত করে।
ইনস্পেক্ট ও মেটাডেটা
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে WOFF ফাইল শনাক্ত করে:
বাইট-লেভেল হেডার সিগনেচার (ম্যাজিক বাইটস)
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে WOFF ফাইল শনাক্ত করে:
হেক্স সিগনেচার (অফসেট 0):
77 4F 46 46ASCII রিপ্রেজেন্টেশন: wOFF
স্ট্যান্ডার্ডাইজেশন: W3C Recommendation (2012)
প্রযুক্তিগত বৈশিষ্ট্য
| কন্টেইনার আর্কিটেকচার | 44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data |
| কম্প্রেশন | Deflate (zlib) compression applied to each individual font table |
| বাইট এন্ডিয়াননেস | Big-Endian (SFNT standard) |
| কালার স্পেস | Inherited from underlying font tables |
| চ্যানেল ও কাঠামো | TrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features |
| সর্বোচ্চ মাত্রা | Up to 65,535 glyphs per font file |
| স্বচ্ছতা | Inherited from underlying font format |
| স্ট্রিমিং ও প্রোগ্রেসিভ | Table-by-table decompression enables streaming font loading |
টেকনিক্যাল তুলনা ম্যাট্রিক্স: WOFF বনাম প্রতিযোগীগণ
| প্রযুক্তিগত বৈশিষ্ট্য | WOFF (বর্তমান) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| কম্প্রেশন কোডেক | প্রতি টেবিল অনুযায়ী Deflate (zlib) | টেবিল প্রিপ্ৰসেসিং সহ Brotli | আনকম্প্রেসড SFNT | আনকম্প্রেসড SFNT |
| ম্যাজিক সিগনেচার | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| আপেক্ষিক ফাইলের সাইজ | TTF এর চেয়ে প্রায় ৪০% ছোট | TTF এর চেয়ে প্রায় ৬০% ছোট | বেসলাইন স্ট্যান্ডার্ড (১০০%) | বেসলাইন স্ট্যান্ডার্ড (১০০%) |
| লক্ষ্য পরিবেশ | লিগ্যাসি ওয়েব ব্রাউজার (IE9+, Safari 5+) | আধুনিক ওয়েব ব্রাউজার (ইউনিভার্সাল) | ডেস্কটপ অপারেটিং সিস্টেম | ডেস্কটপ পাবলিশিং ও প্রিন্ট |
সাধারণ করাপশন মোড এবং হেক্স রিকভারি গাইড
ব্রাউজার কনসোল সতর্কতা: 'Failed to download font: OTS parsing error'।
মূল কারণ: ঘোষিত আনকম্প্রেসড টেবিলের দৈর্ঘ্যের সাথে অমিল অথবা ক্ষতিগ্রস্ত zlib স্ট্রিম।
পুনরুদ্ধার: File2File Font Converter ব্যবহার করে ফন্ট টেবিলগুলো পুনরায় কম্প্রেস করুন বা WOFF2-এ রূপান্তর করুন।
নিরাপত্তা বিশ্লেষণ ও পার্সার অ্যাটাক ভেক্টর
এক্সপ্লয়েট পেলোড ব্লক করতে ওয়েব ব্রাউজারগুলো ওপেনটাইপ স্যানিটাইজার (OTS) ব্যবহার করে অবিশ্বাসযোগ্য ওয়েব ডোমেন থেকে ডাউনলোড করা WOFF ফাইলগুলো পার্স করে।
পরিচিত অ্যাটাক ভেক্টর
- ক্ষতিগ্রস্ত ফন্ট টেবিল চাঙ্কের zlib ডিকম্প্রেশনের সময় বাফার ওভার-রিড।
- অমিল টেবিল দৈর্ঘ্যের ক্ষেত্রগুলো ফন্ট রেন্ডারারগুলোতে হিপ বাফার ওভারফ্লো ঘটাচ্ছে।
- ফন্ট টেবিল এক্সপানশনের সময় মেমরি অবসানের মাধ্যমে পরিষেবা অস্বীকার (Denial of service)।
প্রতিরক্ষামূলক সেরা অনুশীলন:
ঐতিহাসিক উৎপত্তি ও মাইলফলক
প্রধান সুবিধাসমূহ ও গুণাবলী
- কাঁচা আনকম্প্রেসড TTF বা OTF ফাইলের তুলনায় ওয়েব ফন্টের ফাইলের আকার ৩০% থেকে ৫০% কমিয়ে দেয়।
- ২০১১ সাল থেকে প্রকাশিত প্রতিটি ডেস্কটপ এবং মোবাইল ওয়েব ব্রাউজারের সাথে ইউনিভার্সাল ব্যাকওয়ার্ড কম্প্যাটিবিলিটি রয়েছে।
- ফন্ট লাইসেন্সিং, লেখকের ক্রেডিট এবং ফাউন্ড্রি কপিরাইট তথ্যের জন্য একটি ঐচ্ছিক XML মেটাডেটা ব্লক অন্তর্ভুক্ত করে।
কারিগরি সীমাবদ্ধতা ও অসুবিধা
- WOFF2 দ্বারা প্রতিস্থাপিত, যা ব্রটলিন অ্যালগরিদম ব্যবহার করে প্রায় ৩০% ছোট কম্প্রেশন করে।
- TTF/OTF-এ রূপান্তর করা ছাড়া সরাসরি ডেস্কটপ অপারেটিং সিস্টেমে (Windows/Mac) ইনস্টল করা যায় না।
- পুরোনো zlib কম্প্রেশন অ্যালগরিদম আধুনিক এন্ট্রপি এনকোডারগুলির মতো দক্ষ নয়।
আকর্ষণীয় কারিগরি তথ্য
- WOFF 1.0-এর ম্যাজিক বাইটগুলো হলো 'wOFF' (0x77 0x4F 0x46 0x46), অন্যদিকে WOFF 2.0 ব্যবহার করে 'wOF2'।
- টাইপ ফাউন্ড্রিগুলো WOFF তৈরি হওয়ার পরেই ওয়েবে তাদের ফন্টগুলোর অনুমতি দিতে সম্মত হয়েছিল, কারণ এর বিশেষায়িত কন্টেইনারটি পাইরেট করা ডেস্কটপ ফন্ট থেকে ওয়েব ফন্টগুলোকে আলাদা করেছিল।
- অফিসিয়াল W3C রিকমেন্ডেশন হওয়ার আগে WOFF মূলত ২০১০ সালে Firefox 3.6-এ প্রয়োগ করা হয়েছিল।
সচরাচর জিজ্ঞাসಿತ টেকনিক্যাল প্রশ্নাবলি
WOFF এবং WOFF2-এর মধ্যে পার্থক্য কী?
WOFF zlib কম্প্রেশন ব্যবহার করে, অন্যদিকে WOFF2 গুগলের নতুন ব্রটলি (Brotli) অ্যালগরিদম এবং টেবিল ট্রান্সফর্ম ব্যবহার করে, ফলে এর ফাইলগুলো WOFF-এর চেয়ে প্রায় 30% ছোট হয়।
ডেস্কটপে ব্যবহারের জন্য আমি কীভাবে একটি WOFF ফন্টকে TTF বা OTF-এ রূপান্তর করতে পারি?
আপনি সরাসরি আপনার ওয়েব ব্রাউজারে File2File.app ব্যবহার করে কয়েক সেকেন্ডের মধ্যে WOFF ফাইলগুলোকে ইনস্টলযোগ্য ডেস্কটপ TTF বা OTF ফন্টে রূপান্তর করতে পারেন।
আধুনিক ওয়েবসাইটে কি আমার এখনও WOFF 1.0 প্রয়োজন?
না। সমস্ত আধুনিক ব্রাউজার নেটিভভাবে WOFF2 সমর্থন করে। ইন্টারনেট এক্সপ্লোরার-এর মতো পুরনো লিগ্যাসি ব্রাউজারগুলোকে সমর্থন করার প্রয়োজন হলেই কেবল WOFF 1.0 দরকার হয়।