ما هو ملف OTF؟
يشير الملف بامتداد .otf إلى تنسيق خط OpenType. تنسيق خط OTF أكثر قابلية للتوسع ويوسع الميزات الحالية لتنسيقات TTF للطباعة الرقمية. يجمع OTF ، الذي طورته Microsoft و Adobe ، ميزات تنسيقات خطوط PostScript و TrueType. هذا يجعل تنسيق OTF مناسبًا لأنظمة الكتابة ذات الأغلبية وهذا هو السبب في استخدامه بشكل موحد على منصات الكمبيوتر الرئيسية. تنسيق خط OpenType مدعوم من قبل نظامي التشغيل Mac OS X و Windows 2000 والإصدارات الأحدث.
نبذة تاريخية
نشأت متطلبات خطوط OpenType كمتطلب لتنسيق خط أكثر تعبيرًا يمكنه التعامل مع الطباعة الدقيقة. بالإضافة إلى ذلك ، كان يهدف إلى تلبية متطلبات السلوك المعقد للعديد من أنظمة الكتابة في العالم. حاولت Microsoft ترخيص تقنية الطباعة المتقدمة من Apple ، والمعروفة باسم GX Typography ، في أوائل التسعينيات. لم يسير هذا على ما يرام ونتيجة لذلك ، بدأت Microsoft في تحسين تقنية خطوط TrueType الخاصة بها في عام 1994. وتضمنت التعديلات أيضًا تقديم تنسيق خط أكثر ملاءمة يلبي أيضًا ميزات تنسيقات خطوط Adobe Type 1 (PostScript).
انضمت Adobe ، في عام 1996 ، إلى Microsoft في جهودها لإلغاء كل من TrueType من Apple وتنسيقات خطوط Type 1 الخاصة بها. نتج عن ذلك مزيج من تنسيقات الخطوط الأساسية للتغلب على القيود وإضافة امتدادات جديدة. تم تقديم هذه التقنية الجديدة في نفس العام باسم ** OpenType **.
مواصفات تنسيق ملف OTF
تتوفر مواصفات OTF للجمهور بواسطة Microsoft ويمكن الرجوع إليها من منظور المطور. مثل TTF ، فإنه يستخدم نفس بنية حاوية ‘sfnt’ ومتوافق مع مواصفات TrueType. تُستخدم البيانات الموجودة داخل ملف خط OpenType لأغراض مختلفة مثل حساب تخطيط النص ، وتعريف الحروف الرسومية على أنها مخططات TrueType أو Compact Font Format (CFF) ، وتوفير صور نقطية أحادية اللون أو ملونة أو مستندات SVG كأوصاف حروف رسومية بديلة ، ومعلومات بيانات التعريف.
أنواع بيانات OTF
تستخدم ملفات OTF أنواع البيانات التالية وكلها في Big Endian.
نوع البيانات | الوصف |
---|---|
uint8 | عدد صحيح بدون إشارة 8 بت. |
int8 | عدد صحيح ذو إشارة 8 بت. |
uint16 | عدد صحيح بدون إشارة 16 بت. |
int16 | عدد صحيح ذو إشارة 16 بت. |
uint24 | عدد صحيح بدون إشارة 24 بت. |
uint32 | عدد صحيح بدون إشارة 32 بت. |
int32 | 32 بت عدد صحيح موقع. |
ثابت | رقم ذو نقطة ثابتة موقعة 32 بت (16.16) |
FWORD | int16 الذي يصف كمية في وحدات تصميم الخط. |
UFWORD | uint16 الذي يصف كمية في وحدات تصميم الخط. |
F2DOT14 | رقم ثابت موقع 16 بت مع 14 بت منخفضة من الكسر (2.14). |
وقت طويل | يتم تمثيل التاريخ والوقت بعدد الثواني منذ 12:00 منتصف الليل ، 1 يناير 1904 ، التوقيت العالمي المنسق. يتم تمثيل القيمة كرقم صحيح 64 بت بعلامة. |
علامة | مصفوفة من أربعة uint8s (الطول = 32 بت) تُستخدم لتعريف جدول ، أو محور تباين التصميم ، أو نص ، أو نظام لغة ، أو ميزة ، أو خط أساس |
Offset16 | إزاحة قصيرة لجدول ، مثل uint16 ، إزاحة NULL = 0x0000 |
Offset32 | إزاحة طويلة لجدول ، مثل uint32 ، إزاحة فارغة = 0x00000000 |
الإصدار 16 دوت 16 | قيمة 32 بت معبأة بأرقام الإصدارات الرئيسية والثانوية. (راجع أرقام إصدارات الجدول.) |
دليل جداول OTF
يبدأ ملف OTF بدليل جدول. هذا الدليل هو مجموعة المستوى الأعلى من الجداول في ملف الخط. بناءً على عدد الخطوط في الملف ، قد يكون دليل الجدول موجودًا في موقع مختلف في الملف. على سبيل المثال ، في حالة احتواء ملف الخط على خط واحد فقط ، يبدأ دليل الجدول عند البايت 0 من الملف. في حالة تجميع خطوط OpenType متعددة ، يشار إلى بداية دليل الجدول في TTCHeader.
النوع | الاسم | الوصف |
---|---|---|
uint32 | sfntVersion | 0x00010000 أو 0x4F54544F (“OTTO”) |
uint16 | numTables | عدد الجداول. |
uint16 | searchRange | أقصى قوة 2 أقل من أو تساوي numTables ، مضروبة في 16 ((2 \ ** floor (log2 (numTables))) * 16 ، حيث “**” عامل أسي). |
uint16 | entrySelector Log2 ذات الطاقة القصوى التي تبلغ 2 أقل من أو تساوي numTables (log2 (searchRange / 16) ، والتي تساوي floor (log2 (numTables))). | |
uint16 | rangeShift | numTables مرات 16 ، مطروحًا منها نطاق البحث ((numTables * 16) - searchRange). |
الجدول سجل | tableRecords [numTables] | صفيف سجلات الجدول - واحد لكل جدول من جداول المستوى الأعلى في الخط |
سجل الجدول
لكل جدول مستوى أعلى في الخط ، يوجد سجل جدول يتكون من الحقول التالية.
النوع | الاسم | الوصف |
---|---|---|
علامة | الجدول معرف الجدول. | |
uint32 | اختباري | المجموع الاختباري لهذا الجدول. |
Offset32 | تعويض | الإزاحة من بداية ملف الخط. |
uint32 | طول هذا الجدول. |
يتم تمثيل كل جدول في ملف خطوط OpenType بأسماء تعرف باسم علامات الجدول. من الضروري أن يتم فرز جميع السجلات في المصفوفة بترتيب تصاعدي حسب العلامة.