Aparências OpenType CFF2 da instância por defeito
Os construtores nativos de aparências plain, rich, shaped e family aceitam um tipo de letra OpenType OTTO completo contendo contornos CFF2 nas coordenadas de variação por defeito dele
O tipo de letra original permanece a fonte do mapeamento de carateres Unicode, índices de glyphs, avanços horizontais e shaping; HarfBuzz resolve os contornos da instância por defeito dele, incluindo contornos selecionados através de múltiplos dicionários de tipos de letra
O construtor converte cada glyph num programa estático CFF 1 com chaves CID e incorpora-o como FontFile3 com Subtype CIDFontType0C, uma coleção Adobe Identity e CIDs iguais aos índices originais de glyphs
O encoding gerado, as larguras e o mapeamento ToUnicode mantêm a identidade original de glyphs e as sequências lógicas Unicode, incluindo carateres suplementares, ligaduras e marcas de combinação
Isto produz um programa de tipos de letra PDF 1.7 usando as estruturas CFF 1 descritas pela ISO 32000-1:2008 9.7 e 9.9; não incorpora CFF2 diretamente numa stream de tipos de letra PDF
É exigida uma biblioteca HarfBuzz da arquitetura correspondente expondo hb_font_draw_glyph e callbacks de desenho imutáveis, incluindo para texto sem shaping; estas APIs estão disponíveis a partir do HarfBuzz 7, e HOTPDF_HARFBUZZ_LIBRARY seleciona uma biblioteca explícita
O shaping complexo também usa a dependência FriBidi existente e o contrato existente de avanços inteiros na escala 1000; avanços ideais não quantizados no unitsPerEm original são uma limitação separada de precisão
Aparências editáveis exigem permissão de embedding instalável ou editável; a geração de aparências só de leitura permite permissão de pré-visualização e impressão, enquanto permissões restritas e apenas de bitmap continuam rejeitadas
No-subsetting mantém todos os glyphs originais no programa convertido, incluindo glyphs não usados; a conversão altera o formato do programa de tipos de letra e não promete retenção byte a byte do contentor OpenType original
O programa convertido usa um nome primário distinto e mantém avisos legíveis de direitos de autor e de licença mais os bytes originais da tabela de nomes
Os limites de fonte de tipos de letra, buffer de trabalho, layout de tipos de letra completos, tamanho de objetos, agregado de tipos de letra rich, cancelamento e renderização nativa são verificados antes da publicação; programas malformados de glyphs em falta continuam a ser erros, enquanto glyphs vazios válidos são retidos
A saída Type 2 tem precisão de coordenadas 16.16 e deltas de operandos delimitados, no máximo 65,535 glyphs e no máximo 65,535 bytes por programa de glyph
Tabelas CFF2 em bruto autónomas, streams diretas de tipos de letra CFF2 em recursos existentes de aparências default de PDFs, seleção de eixos de variação não default e layout de texto complexo mais abrangente estão fora deste backend
Entradas existentes de OpenType CFF 1 continuam a usar o backend de aparências compactas, enquanto recursos incorporados de anotações Type1, Type1C e CIDFontType0C usam o fallback original de tipos de letra raw
TryGetCFF2FontTable é uma consulta delimitada de capacidades de formato, e não validação completa de contornos ou de permissões