aspose.info
AR

CFF2 - تنسيق ملف الخط المضغوط الإصدار 2

تاريخ التحديث

ما هو ملف CFF2؟

تنسيق ملف CFF2 هو الإصدار 2.0 من تنسيق ملف CFF ويسمح بالتخزين الفعال لمخططات الحروف الرسومية والبيانات الوصفية المشابهة لتنسيق ملف CFF. يختلف CFF2 عن CFF من حيث الغرض منه استخدامه في سياق خط OpenType كجدول ‘sfnt’ مع العلامة CFF2. لا يمكن استخدامه كبرنامج مستقل ويعتمد على البيانات الموجودة في جداول OpenType الأخرى.

تنسيق ملف CFF2

تحتوي مواصفات تنسيق ملف CFF2 على تفاصيل حول تخطيط البيانات الداخلية وأنواع البيانات والجداول والمعلومات الداخلية الأخرى حول تنسيق الملف. يمكن الرجوع إليها كمرجع للمطور. فيما يلي بعض التفاصيل حول هذه.

تخطيط البيانات

يتم تنظيم البيانات الثنائية الخاصة بتنسيق ملف CFF2 بشكل منطقي كعدد من هياكل البيانات المنفصلة. التخطيط داخل البيانات الثنائية كما هو موضح في الجدول التالي.

الإدخالالتعليقات
رأسموقع ثابت
أعلى DICTموقع ثابت
مؤشر Subr العالميموقع ثابت
تغييرمتجر
FDSelectالتقديم فقط في حالة وجود أكثر من DICT للخط في Font DICT INDEX.
الخط DICT INDEX
صفيف DICT الخطمضمن في Font DICT INDEX.
DICT خاصواحد لكل خط DICT.

تعتمد الهياكل الثلاثة الأولى فقط على مواقع ثابتة. يتم الوصول إلى المتبقي عن طريق التعويضات ، ويمكن تغيير ترتيبها.

أنواع البيانات

يستخدم تنسيق ملف CFF2 أنواع البيانات التالية.

الاسمالنطاقالوصف
uint80 إلى 255رقم 8 بت بدون إشارة
uint160 إلى 65535رقم 16 بت غير موقع
uint320 إلى 4294967295رقم غير موقع 32 بت
الإزاحةيختلفإزاحة 1 أو 2 أو 3 أو 4 بايت (محددة بواسطة حقل OffSize في جدول فهرس)
تغيير الحجم1 إلى 4رقم 1 بايت غير موقع يحدد حجم حقل الإزاحة أو الحقول

يخزن جميع البيانات الرقمية متعددة البايت وحقول الإزاحة بترتيب بايت كبير. تنسيق CFF2 خالي من حشو البايت لأنه لا يحترم أي قيود محاذاة.

بيانات DICT

تحتوي ملفات CFF2 على بيانات قاموس الخطوط كأزواج مفتاح-قيمة بتنسيق رمزي مضغوط. يتم ترميز مفاتيح القاموس كمعامِلات 1 أو 2 بايت ويتم ترميز قيم القاموس كمعامِلات رقمية متغيرة الحجم. هناك ثلاثة هياكل تستخدم تنسيق بيانات DICT: “Top DICT” و “Font DICT” و “Private DICT”. يتم تحديد عدد من أنواع المعامل الصحيح بأحجام مختلفة ويتم ترميزها كما هو موضح في الجدول التالي (البايت الأول من المعامل هو b0 ، والثاني هو b1 ، وهكذا).

الحجمنطاق b0نطاق القيمةحساب القيمة
132 إلى 246-107 إلى +107b0 - 139
2247 إلى 250+108 إلى +1131(b0 - 247) * 256 + b1 + 108
2251 إلى 254-1131 إلى -108- (ب0 - 251) * 256 - ب 1 - 108
328-32768 إلى +32767ب 1 « 8
529- (2 ^ 31) إلى + (2 ^ 31-1)ب 1 « 24 \

العنوان

تبدأ البيانات الثنائية برأس له التنسيق الموضح في الجدول أدناه.

النوعالاسمالوصف
uint8الإصدار الرئيسيتنسيق الإصدار الرئيسي. قم بالتعيين إلى 2.
uint8الإصدارتنسيق نسخة ثانوية. تعيين إلى الصفر.
uint8headerSizeحجم الرأس (بايت)
uint16topDictLengthطول بنية أعلى DICT بالبايت.

مراجع

انظر أيضًا