HPDFBuildHeadlessTextAppearance
function HPDFBuildHeadlessTextAppearance(const Text: UnicodeString;
const TrueTypeFont: SysUtils.TBytes; FirstObjectNumber: Integer;
const Options: THPDFHeadlessTextAppearanceOptions): THPDFHeadlessTextAppearance;
Constrói um Form XObject Unicode real e seus objetos de fontes usando o parser compartilhado HotPDF, as classes de objetos, o leitor de cmaps, os advances reais de TrueType e os metadados de descriptors, e o shaping opcional HarfBuzz/FriBidi
O bundle retornado é dono de sete objetos consecutivos começando num FirstObjectNumber positivo; use o método de aparências do documento para registro de objetos, links de campos, criptografia e saída incremental delimitada
Entrada TrueType exige contornos nomeados glyf/loca, uma assinatura sfnt e head magic consistentes, offsets de glyphs ordenados e delimitados, e um cmap Unicode completo e válido contido dentro da extensão declarada de sua tabela; entrada OpenType OTTO pode, em vez disso, fornecer uma tabela CFF 1 delimitada com charset e metadados de coleção validados
O lookup Unicode não faz fallback para mapeamentos Symbol ou MacRoman; glyphs ausentes são rejeitados em vez de substituídos por um glyph visualmente não relacionado
O texto suportado é Latin horizontal direto, grego, cirílico, CJK simples, Hangul pré-composto, símbolos matemáticos selecionados e emoji isolados quando a fonte fornecida contém cada scalar
Layout multilinha CR/LF, wrapping medido, células comb, rotações em quartos de volta e bordas retangulares ou circulares são controlados pelo record de opções
Com ShapeComplexText habilitado, scripts complexos, sequências combinantes, bidi e ligaduras usam o shaping nativo HarfBuzz e a ordenação de runs FriBidi; surrogates malformados, caracteres de controle não suportados, glyphs ausentes, permissões de fontes inválidas e orçamentos esgotados permanecem erros
Glyphs complexos recebem posicionamento individual incluindo offsets de shaping, mapeamentos ToUnicode cientes de clusters, e ActualText de marked-content retendo a origem lógica; readers podem usar sua própria ordem de extração de texto de anotações
O Linux carrega libharfbuzz.so.0 e libfribidi.so.0; o Windows exige libharfbuzz-0.dll e libfribidi-0.dll da arquitetura correspondente, com caminhos explícitos opcionais por HOTPDF_HARFBUZZ_LIBRARY e HOTPDF_FRIBIDI_LIBRARY
Os bytes completos da fonte original são embutidos com o nome PostScript, limites, ascent, descent, ângulo itálico e flag fixed-pitch reais dela; cap height usa OS/2 quando disponível e, caso contrário, o ascender do hhea, enquanto StemV usa uma estimativa conservadora de descriptor fixo
Embutimento installable ou editable é exigido; no-subsetting é honrado pelo embutimento completo, e permissões de embutimento restritas, preview-and-print, somente bitmap, ausentes ou desconhecidas são rejeitadas
O builder checa bytes de fontes, contagem de glyphs, tamanhos de streams e dicionários, validade de scalars e cancelamento antes de retornar um bundle próprio
Veja THPDFHeadlessTextAppearanceOptions, THPDFHeadlessTextAppearance e SetTextFieldValueWithAppearance
Fontes OpenType CFF 1 são suportadas pelo backend de aparências de fontes compactas, preservando a fonte completa, o mapeamento CID real, texto Unicode, widths e a política de embutimento