Funkcje podzbiorów czcionek CFF i OpenType

PDF Filter Support

 

Góra  EnableFontSubsetting  Spis treści

Te funkcje na poziomie modułu udostępniają publiczną powierzchnię inspekcji i tworzenia podzbiorów czcionek CFF, OpenType-CFF oraz sfnt używaną przez potok osadzonych czcionek HotPDF. HotPDF dostarcza także moduły parserów Type 1 PFB i CFF wielokrotnego użytku dla wywołujących, którzy potrzebują niższego poziomu inspekcji czcionek

 

Składnia 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;

 

Opis

HPDFSubsetCFF przepisuje ładunek czcionki CFF w miejscu, zachowując identyfikatory glyph ID i zastępując nieużywane CharStrings oraz podprogramy minimalnymi atrapami. To funkcja pomocnicza dla wywołujących, którzy już wyodrębnili tabelę CFF z kontenera czcionki

 

HPDFSfntIsOTF wykrywa kontener sfnt, którego wersją jest OTTO. HPDFOTFFindCFFTable lokalizuje osadzoną tabelę 'CFF '. HPDFSubsetOTFContainer łączy te kroki, tworząc podzbiór osadzonej tabeli CFF i zwracając kontener OTF z zachowanym oryginalnym układem tabel sfnt. HPDFExtractTTFPostScriptName odczytuje name ID 6 z tabeli sfnt name i zwraca nazwę czcionki PostScript, jeśli jest obecna

 

Narzędzie do tworzenia podzbiorów rozpoznaje zarówno CFF oparte na nazwach (pojedynczy Private DICT, pojedynczy Local Subr INDEX), jak i CFF oparte na CID (operator ROS w Top DICT, FDArray z wieloma Private DICT podczcionek, mapa FDSelect glyph-to-FD, osobne Local Subr INDEXes dla każdego FD). Obsługa CID obejmuje czcionki OpenType-CFF CJK / Indic / Arabic; skan domknięcia śledzi kontekst FD każdego zachowanego CharString, więc Local Subr INDEXes dla poszczególnych FD są niezależnie redukowane

 

Niższego poziomu dekodery liczb całkowitych CFF, parsery FDArray / FDSelect i skanery podprogramów są szczegółami implementacji za tą publiczną powierzchnią pomocniczą

HPDFExtractTTFPostScriptName odczytuje name ID 6 z tabeli sfnt name i zwraca nazwę PostScript fontu, jeśli istnieje

 

Moduły parserów Type 1 i CFF

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler i HPDFType1PFBHandler udostępniają czytniki tablic bajtów wielokrotnego użytku, wyodrębnianie poleceń konturu glifów Type 1, parsowanie CFF Header / INDEX / dictionary / charset / encoding oraz metadane Type 1 PFB z pomocnikami wyszukiwania glifów. HPDFType1CB udostępnia punkt wejścia parsera przyjazny dla C++Builder. Moduły są dołączone do projektów pakietów Delphi i C++Builder, dzięki czemu aplikacje mogą analizować dane Type 1 PFB i CFF bez ponownej implementacji parserów binarnych

 

Zobacz też: EnableFontSubsetting, FontEmbedding, PDF Filter Support