|
توابع زیرمجموعهسازی قلم CFF و OpenType
|
بالا EnableFontSubsetting فهرست |
|
این توابع در سطح unit، سطح عمومی بازرسی قلم CFF، OpenType-CFF و sfnt را که خط لوله قلم توکار HotPDF از آن استفاده میکند در اختیار میگذارند. HotPDF همچنین unitهای قابلبازاستفاده برای parserهای Type 1 PFB و CFF را برای callerهایی که به بازرسی سطح پایینتر قلم نیاز دارند ارائه میکند
نحو Delphi function HPDFSubsetCFF(const CFFBytes: TBytes; const KeepGlyph: array of Boolean): TBytes; function HPDFSfntIsOTF(const Data: TBytes): Boolean; function HPDFOTFFindCFFTable(const Data: TBytes; out TableOff: Cardinal; out TableLen: Cardinal): Boolean; function HPDFSubsetOTFContainer(const OTFBytes: TBytes; const KeepGlyph: array of Boolean): TBytes; function HPDFExtractTTFPostScriptName(const Data: TBytes): AnsiString;
توضیح HPDFSubsetCFF payload قلم CFF را در همان محل بازنویسی میکند، شناسههای glyph را حفظ میکند و CharStringها و subroutineهای استفادهنشده را با stubهای حداقلی جایگزین میکند. این helper برای callerهایی است که از قبل جدول CFF را از یک container قلم استخراج کردهاند
HPDFSfntIsOTF یک container sfnt را که نسخه آن OTTO است تشخیص میدهد. HPDFOTFFindCFFTable جدول تع嵌 شده
زیرمجموعهساز هم CFF نامکلیددار (یک Private DICT و یک Local Subr INDEX) و هم CFF CID-کلیددار (عملگر Top DICT ROS، FDArray شامل چند Private DICT قلم فرعی، نگاشت glyph به FD در FDSelect و Local Subr INDEX جداگانه برای هر FD) را تشخیص میدهد. پشتیبانی CID قلمهای OpenType-CFF برای CJK / Indic / Arabic را پوشش میدهد؛ پیمایش closure زمینه FD هر CharString نگهداشتهشده را دنبال میکند تا Local Subr INDEXهای هر FD بهطور مستقل زیرمجموعه شوند
decoderهای عدد صحیح CFF در سطح پایینتر، parserهای FDArray / FDSelect و scannerهای subroutine جزئیات پیادهسازی پشت این سطح عمومی helper هستند
واحدهای parser Type 1 و CFF
همچنین ببینید: EnableFontSubsetting, FontEmbedding, پشتیبانی از فیلتر PDF |