|
CFF and OpenType Font Subsetting Functions
|
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
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 |