CFF ve OpenType Yazı Tipi Alt Küme İşlevleri

PDF Filter Support

 

Üst  EnableFontSubsetting  İçindekiler

Bu birim düzeyindeki işlevler, HotPDF'nin gömülü yazı tipi hattında kullanılan ortak CFF, OpenType-CFF ve sfnt yazı tipi inceleme ve alt küme oluşturma yüzeyini açar. HotPDF ayrıca daha düşük düzeyli yazı tipi incelemesine ihtiyaç duyan çağıranlar için yeniden kullanılabilir Type 1 PFB ve CFF ayrıştırıcı birimleri de sağlar

 

Delphi sözdizimi

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;

 

Açıklama

HPDFSubsetCFF, CFF yazı tipi yükünü yerinde yeniden yazar, glyph ID değerlerini korur ve kullanılmayan CharStrings ile alt yordamları en küçük stub'larla değiştirir. Bu, bir yazı tipi kapsayıcısından CFF tablosunu zaten çıkarmış çağıranlar için yardımcı işlevdir

 

HPDFSfntIsOTF, sürümü OTTO olan bir sfnt kapsayıcısını algılar. HPDFOTFFindCFFTable gömülü 'CFF ' tablosunu bulur. HPDFSubsetOTFContainer bu adımları birleştirerek gömülü CFF tablosunun alt kümesini oluşturur ve özgün sfnt tablo düzeni korunmuş bir OTF kapsayıcısı döndürür. HPDFExtractTTFPostScriptName, sfnt name tablosundan name ID 6 değerini okur ve varsa PostScript yazı tipi adını döndürür

 

Alt küme oluşturucu hem ad anahtarlı CFF'yi (tek Private DICT, tek Local Subr INDEX) hem de CID anahtarlı CFF'yi (Top DICT ROS işleci, birden çok alt yazı tipi Private DICT içeren FDArray, FDSelect glyph-to-FD eşlemesi, her FD için Local Subr INDEXes) tanır. CID desteği CJK / Indic / Arabic OpenType-CFF yazı tiplerini kapsar; kapanış taraması her korunan CharString'in FD bağlamını izler, böylece her FD için Local Subr INDEXes bağımsız olarak alt kümeye indirilir

 

Alt düzey CFF tamsayı çözücüleri, FDArray / FDSelect ayrıştırıcıları ve alt yordam tarayıcıları bu genel helper yüzeyinin arkasındaki uygulama ayrıntılarıdır

HPDFExtractTTFPostScriptName sfnt name tablosundan name ID 6 değerini okur ve varsa yazı tipinin PostScript adını döndürür

 

Type 1 ve CFF ayrıştırıcı birimleri

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler ve HPDFType1PFBHandler yeniden kullanılabilir bayt dizisi okuyucuları, Type 1 glif kontur komutu çıkarımı, CFF Header / INDEX / dictionary / charset / encoding ayrıştırması ve Type 1 PFB meta verileri ile glif arama yardımcıları sağlar. HPDFType1CB, C++Builder dostu bir ayrıştırıcı giriş noktası sağlar. Birimler Delphi ve C++Builder paket projelerine dahil edilir, böylece uygulamalar ikili ayrıştırıcıları yeniden uygulamadan Type 1 PFB ve CFF verilerini inceleyebilir

 

Ayrıca bkz.: EnableFontSubsetting, FontEmbedding, PDF Filter Support