ওয়েব ওপেন ফন্ট ফরম্যাট (.woff)
W3C স্ট্যান্ডার্ডওয়েব ওপেন ফন্ট ফরম্যাট (WOFF) হল ডব্লিউ৩সি (W3C) দ্বারা অনুমোদিত ঐতিহাসিক প্রথম প্রজন্মের ওপেন স্ট্যান্ডার্ড ওয়েব ফন্ট ফরম্যাট, যা zlib কম্প্রেশন এবং XML লাইসেন্সিং মেটাডেটা সহ স্ট্যান্ডার্ড TrueType বা OpenType ফন্টগুলোকে মোড়কজাত করে।
ইনস্পেক্ট ও মেটাডেটা
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে WOFF ফাইল শনাক্ত করে:
বাইট-লেভেল হেডার সিগনেচার (ম্যাজিক বাইটস)
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে WOFF ফাইল শনাক্ত করে:
হেক্স সিগনেচার (অফসেট 0):
77 4F 46 46ASCII রিপ্রেজেন্টেশন: wOFF
স্ট্যান্ডার্ডাইজেশন: W3C সুপারিশ (2012)
প্রযুক্তিগত বৈশিষ্ট্য
| কন্টেইনার আর্কিটেকচার | 44-বাইট WOFF header-এর পরে থাকে table directory, zlib-কমপ্রেসড table data, ঐচ্ছিক বর্ধিত metadata এবং private data |
| কম্প্রেশন | প্রতিটি font table-এ আলাদাভাবে Deflate (zlib) কমপ্রেশন প্রয়োগ করা হয় |
| বাইট এন্ডিয়াননেস | বিগ-এন্ডিয়ান (SFNT স্ট্যান্ডার্ড) |
| কালার স্পেস | মূল ফন্টের table থেকে উত্তরাধিকারসূত্রে পাওয়া |
| চ্যানেল ও কাঠামো | TrueType ('glyf') বা PostScript ('CFF ') glyph outline, মেট্রিক এবং টাইপোগ্রাফির বৈশিষ্ট্য |
| সর্বোচ্চ মাত্রা | প্রতি ফন্ট ফাইলে সর্বোচ্চ 65,535টি glyph |
| স্বচ্ছতা | মূল ফন্ট ফরম্যাট থেকে উত্তরাধিকারসূত্রে পাওয়া |
| স্ট্রিমিং ও প্রোগ্রেসিভ | table ধরে ডিকম্প্রেশন করে ফন্ট স্ট্রিমিংয়ে লোড করা যায় |
টেকনিক্যাল তুলনা ম্যাট্রিক্স: 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 decode downloaded font: OTS parsing error'।
মূল কারণ: ঘোষিত আনকম্প্রেসড টেবিলের দৈর্ঘ্যের সাথে অমিল অথবা ক্ষতিগ্রস্ত zlib স্ট্রিম।
পুনরুদ্ধার: File2File.app Font Converter ব্যবহার করে ফন্ট টেবিলগুলো পুনরায় কম্প্রেস করুন বা WOFF2-এ রূপান্তর করুন।
নিরাপত্তা বিশ্লেষণ ও পার্সার অ্যাটাক ভেক্টর
এক্সপ্লয়েট পেলোড ব্লক করতে ওয়েব ব্রাউজারগুলো ওপেনটাইপ স্যানিটাইজার (OTS) ব্যবহার করে অবিশ্বাসযোগ্য ওয়েব ডোমেন থেকে ডাউনলোড করা WOFF ফাইলগুলো পার্স করে।
পরিচিত অ্যাটাক ভেক্টর
- ক্ষতিগ্রস্ত ফন্ট টেবিল চাঙ্কের zlib ডিকম্প্রেশনের সময় বাফার ওভার-রিড।
- অমিল টেবিল দৈর্ঘ্যের ক্ষেত্রগুলো ফন্ট রেন্ডারারগুলোতে হিপ বাফার ওভারফ্লো ঘটাচ্ছে।
- ফন্ট টেবিল এক্সপানশনের সময় মেমরি অবসানের মাধ্যমে পরিষেবা অস্বীকার (Denial of service)।
প্রতিরক্ষামূলক সেরা অনুশীলন: অপারেটিং সিস্টেম ফন্ট ইঞ্জিনে পাস করার আগে সর্বদা OTS দিয়ে ডাউনলোড করা WOFF ফাইলগুলি স্যানিটাইজ করুন।
ঐতিহাসিক উৎপত্তি ও মাইলফলক
প্রধান সুবিধাসমূহ ও গুণাবলী
- কাঁচা TTF বা OTF ফাইলের তুলনায় ওয়েব ফন্টের আকার কমাতে পারে; কতটা কমবে তা ফন্ট ও encoder-এর ওপর নির্ভর করে।
- ২০১১ সাল থেকে প্রকাশিত প্রতিটি ডেস্কটপ এবং মোবাইল ওয়েব ব্রাউজারের সাথে ইউনিভার্সাল ব্যাকওয়ার্ড কম্প্যাটিবিলিটি রয়েছে।
- ফন্ট লাইসেন্সিং, লেখকের ক্রেডিট এবং ফাউন্ড্রি কপিরাইট তথ্যের জন্য একটি ঐচ্ছিক XML মেটাডেটা ব্লক অন্তর্ভুক্ত করে।
কারিগরি সীমাবদ্ধতা ও অসুবিধা
- অনেক ওয়েব workflow-এ WOFF2 এটি প্রতিস্থাপন করেছে; WOFF2-তে Brotli কমপ্রেশন ও font table transform ব্যবহৃত হয়, তবে ফাইলের আকার কতটা কমবে তা ভিন্ন হতে পারে।
- 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 কমপ্রেশন ও font table transform। ফলে ফাইলের আকারে পার্থক্য ফন্ট ও encoder-এর ওপর নির্ভর করে।
ডেস্কটপে ব্যবহারের জন্য আমি কীভাবে একটি WOFF ফন্টকে TTF বা OTF-এ রূপান্তর করতে পারি?
আপনি সরাসরি আপনার ওয়েব ব্রাউজারে File2File.app ব্যবহার করে কয়েক সেকেন্ডের মধ্যে WOFF ফাইলগুলোকে ইনস্টলযোগ্য ডেস্কটপ TTF বা OTF ফন্টে রূপান্তর করতে পারেন।
আধুনিক ওয়েবসাইটে কি আমার এখনও WOFF 1.0 প্রয়োজন?
না। সমস্ত আধুনিক ব্রাউজার স্বাভাবিকভাবেই WOFF2 সমর্থন করে। ইন্টারনেট এক্সপ্লোরার-এর মতো পুরনো লিগ্যাসি ব্রাউজারগুলোকে সমর্থন করার প্রয়োজন হলেই কেবল WOFF 1.0 দরকার হয়।