aspose.info
FA

CFF2 - فرمت فایل فشرده فونت نسخه 2

به‌روزرسانی

فایل CFF2 چیست؟

CFF2 file format is the version 2.0 of the CFF file format and allows efficient storage of glyph outlines and metadata similar to the CFF file format. CFF2 differs from CFF in that it is intended to be used in the context of an OpenType font as a ‘sfnt’ table with the tag CFF2. نمی توان از آن به عنوان یک برنامه مستقل استفاده کرد و به داده های دیگر جداول OpenType بستگی دارد.

فرمت فایل CFF2

CFF2 file format specifications حاوی جزئیاتی در مورد طرح‌بندی داده‌های داخلی، انواع داده‌ها، جداول و سایر اطلاعات داخلی در مورد قالب فایل است. می توان آن را برای مرجع توسعه دهنده ارجاع داد. برخی از جزئیات این موارد به شرح زیر است.

طرح بندی داده ها

داده های باینری فرمت فایل CFF2 به طور منطقی به عنوان تعدادی ساختار داده جداگانه سازماندهی شده اند. طرح بندی درون داده های باینری مطابق جدول زیر است.

ورودینظرات
سربرگمحل ثابت
برترین DICTمکان ثابت
شاخص زیرمجموعه جهانیمکان ثابت
تنوعفروشگاه
FDSelectفقط در صورتی ارائه شود که بیش از یک فونت DICT در Font DICT INDEX وجود داشته باشد.
قلم DICT INDEX
آرایه فونت DICTشامل فونت DICT INDEX.
دیکت خصوصییکی در هر فونت DICT.

فقط سه ساختار اول بر اساس مکان های ثابت هستند. باقیمانده از طریق آفست بدست می آید و ترتیب آنها قابل تغییر است.

انواع داده

فرمت فایل CFF2 از انواع داده های زیر استفاده می کند.

ناممحدودهتوضیحات
uint80 تا 255شماره بدون علامت 8 بیت
uint160 تا 65535شماره بدون علامت 16 بیتی
uint320 تا 4294967295شماره بدون علامت 32 بیتی
افستمتغیرافست های 1، 2، 3 یا 4 بایتی (مشخص شده توسط فیلد OffSize در جدول Index)
OffSize1 تا 4عدد بدون علامت 1 بایتی اندازه یک فیلد Offset یا فیلدهای

تمام داده‌های عددی چند بایتی و فیلدهای آفست را به ترتیب بایت بزرگ ذخیره می‌کند. فرمت CFF2 عاری از بایت های padding است زیرا هیچ گونه محدودیت تراز را رعایت نمی کند.

داده DICT

فایل‌های CFF2 حاوی داده‌های فرهنگ لغت فونت به‌عنوان جفت‌های کلید-مقدار در قالب توکن‌سازی فشرده هستند. کلیدهای فرهنگ لغت به عنوان عملگرهای 1 یا 2 بایتی و مقادیر فرهنگ لغت به عنوان عملوندهای عددی با اندازه متغیر کدگذاری می شوند. سه ساختار وجود دارد که از فرمت DICT Data استفاده می‌کنند: Top DICT، Font DICT و Private DICT. تعدادی از انواع عملوند اعداد صحیح با اندازه‌های مختلف تعریف شده‌اند و همانطور که در جدول زیر نشان داده شده است کدگذاری می‌شوند (بایت اول عملوند b0، دومی b1 و غیره).

اندازهمحدوده b0محدوده ارزشمحاسبه ارزش
132 تا 246-107 تا +107b0 - 139
2247 to 250+108 to +1131(b0 - 247) * 256 + b1 + 108
2251 to 254-1131 to -108-(b0 - 251) * 256 - b1 - 108
328-32768 به +32767b1 « 8
529-(2^31) به +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

سرتیتر

داده های باینری با هدر با فرمت نشان داده شده در جدول زیر شروع می شود.

نوعنامتوضیحات
uint8نسخه اصلیفرمت نسخه اصلی روی 2 تنظیم کنید.
uint8نسخه کوچکفرمت نسخه جزئی روی صفر تنظیم کنید.
uint8headerSizeاندازه سربرگ (بایت).
uint16topDictLengthطول ساختار Top DICT بر حسب بایت.

منابع

همچنین ببینید