CFF and OpenType Font Subsetting Functions

PDF Filter Support

 

Topo  EnableFontSubsetting  Conteúdo

Estas funções em nível de unit expõem a superfície pública de subconjunto de fontes CFF e OpenType-CFF usada pelo pipeline de fontes incorporadas do HotPDF. O HotPDF também fornece units reutilizáveis de parser Type 1 PFB e CFF para chamadores que precisam de inspeção de fonte em nível mais baixo

 

Delphi syntax

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;

 

Descrição

HPDFSubsetCFF reescreve um payload de fonte CFF no próprio buffer, preservando IDs de glifos e substituindo CharStrings e sub-rotinas não usados por stubs mínimos. Este é o helper para chamadores que já extraíram uma tabela CFF de um contêiner de fonte

 

HPDFSfntIsOTF detecta um contêiner sfnt cuja versão é OTTO. HPDFOTFFindCFFTable localiza a tabela 'CFF ' incorporada. HPDFSubsetOTFContainer combina essas etapas ao gerar subconjunto da tabela CFF incorporada e retornar um contêiner OTF com o layout original das tabelas sfnt preservado

 

O subconjunto reconhece tanto CFF baseado em nomes (um único Private DICT, um único Local Subr INDEX) quanto CFF baseado em CID (operador ROS no Top DICT, FDArray com vários Private DICT de subfontes, mapa FDSelect de glifo para FD, Local Subr INDEX por FD). O suporte a CID desde a v2.40.0 cobre fontes OpenType-CFF CJK / Indic / Arabic como a família Adobe Fan/Gothic/Heiti/Ming/Myungjo/Song Std, Kozuka Pr6N e Source Han Sans; a varredura de fechamento rastreia o contexto FD de cada CharString mantido, para que os Local Subr INDEX por FD sejam subconjuntos independentemente

 

Os decodificadores inteiros CFF, parsers FDArray / FDSelect e scanners de sub-rotinas de baixo nível são detalhes de implementação por trás desta superfície pública

HPDFExtractTTFPostScriptName lê name ID 6 da tabela sfnt name e retorna o nome PostScript da fonte quando presente

 

Type 1 and CFF parser units

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler e HPDFType1PFBHandler fornecem leitores reutilizáveis de matrizes de bytes, extração de comandos de contorno de glifos Type 1, parsing de CFF Header / INDEX / dictionary / charset / encoding, além de metadados Type 1 PFB e helpers de busca de glifos. HPDFType1CB fornece um ponto de entrada de parser amigável ao C++Builder. As units estão incluídas nos projetos de pacote Delphi e C++Builder, para que aplicações possam inspecionar dados Type 1 PFB e CFF sem reimplementar os parsers binários

 

Consulte também: EnableFontSubsetting, FontEmbedding, PDF Filter Support