function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean;
Carrega dados TrueType ou TrueType Collection fornecidos pelo chamador por meio do carregador nativo de fontes CID Type 2 do PDFium e anexa um ou mais objetos de texto posicionados à página ativa
Cada TPdfCidGlyph fornece um identificador de glifo de origem, texto Unicode, avanço e deslocamento horizontal ou vertical opcional
CIDs sequenciais isolam instâncias repetidas de glifos, de modo que o mesmo identificador de glifo pode transportar mapeamentos diferentes de clusters Unicode
pcfemFull incorpora a fonte selecionada completa, pcfemSubsetPreferred tenta um subconjunto baseado em lista de glifos e recorre à fonte completa, e pcfemSubsetRequired rejeita a operação se um subconjunto seguro não puder ser produzido
O subsetting sempre retém o glifo zero, rejeita saídas que aumentariam a fonte e verifica se todo GID original solicitado ainda existe antes que os dados cheguem ao PDFium
O Free Pascal nativo no Linux e no macOS usa a biblioteca opcional de subset HarfBuzz com IDs de glifo retidos. Uma biblioteca indisponível ou um subset inseguro é reportado por meio de SubsetErrorCode; o modo de incorporação selecionado decide se o fallback de fonte completa é permitido
TTCIndex seleciona um membro de uma TrueType Collection e deve permanecer zero para uma fonte autônoma
Um ToUnicode CMap gerado mapeia cada CID sequencial para o UnicodeText fornecido, incluindo mapeamentos de ligaduras com várias unidades de código e do plano suplementar
Um mapeamento vazio torna-se U+200B, de modo que cada CID permaneça extraível e observável
Quando VerifyExtraction está ativado, o método reabre o modelo de texto da página, lê apenas os objetos inseridos, compara o resultado com ExpectedText e reverte todos os objetos inseridos em caso de divergência
TPdfCidFontOptions.Default escolhe pcfemSubsetPreferred como EmbeddingMode, verifica a extração, limita os dados de fonte a 64 MiB, as instâncias de glifo a 65,534 e MaxUnicodeCharacters a 1,048,576 unidades de código Unicode mapeadas
TPdfCidFontReport registra a contagem total de glifos e UniqueGlyphCount, OriginalFontBytes e EmbeddedFontBytes, SubsetAttempted, SubsetApplied, UsedFullFontFallback, SubsetErrorCode, FontEmbedded, o texto esperado e extraído e ExtractionMatches
As posições dos glifos são geradas em tempo linear e glifos que compartilham uma mesma linha de base são emitidos como um único objeto de texto nativo
Deslocamentos verticais diferentes usam objetos de texto isolados, preservando a ordem lógica dos objetos
A validação e o subsetting terminam antes da inserção, e qualquer falha nativa posterior remove todos os objetos adicionados pela chamada antes que o conteúdo da página seja regenerado