|
THotPDF.RegisterAcroFormFont THotPDF AcroForm
|
AddXFAPacket AcroForm Support SetFormUnicodeFontDict |
|
Registra uma fonte Unicode adicional (Type 0 / chaveada por CID) para inclusão no dicionário AcroForm Default Resources (/DR). Permite que um único documento PDF exponha várias fontes Unicode a widgets AcroForm ao mesmo tempo, normalmente usado em formulários multilíngues que precisam, por exemplo, de uma fonte latina mais uma fonte CJK mais uma fonte árabe no mesmo formulário
Sintaxe Delphi: procedure RegisterAcroFormFont(const FontResourceName: AnsiString; FontIndirectRef: THPDFObject);
Descrição Os widgets AcroForm referenciam fontes por meio de um dicionário Default Resources (/DR) no dicionário AcroForm, que atua como o pool compartilhado de recursos para todos os fluxos de aparência de campos de formulário. Antes da v2.119.42, o /DR do AcroForm expunha exatamente uma fonte Unicode (normalmente a fonte Type 0 definida pelo helper SetFormUnicodeFontDict), limitando fluxos de formulário multilíngue porque todo widget precisava renderizar pelo mesmo programa de fonte
A partir da v2.119.42, os chamadores podem registrar fontes Unicode adicionais sob nomes de recursos arbitrários. Cada fonte registrada se torna um
Parameters FontResourceName - o PDF Name que o operador /Tf do fluxo de aparência referencia. Convenção: um identificador curto e estável sem barra inicial (por exemplo, 'NotoSansArab', 'NotoSansCJK'). O HotPDF grava a barra inicial ao serializar
Fluxo de trabalho típico (formulário multilíngue)
PDF.RegisterUnicodeTTF('NotoSansArab', 'NotoSansArabic-Regular.ttf'); PDF.RegisterUnicodeTTF('NotoSansJP' , 'NotoSansJP-Regular.otf'); ArabRef := PDF.CreateIndirectFontDict('NotoSansArab'); JPRef := PDF.CreateIndirectFontDict('NotoSansJP'); PDF.RegisterAcroFormFont('NotoSansArab', ArabRef); PDF.RegisterAcroFormFont('NotoSansJP' , JPRef);
Agora os widgets de conteúdo árabe podem criar seus fluxos de aparência com
Coexistência com SetFormUnicodeFontDict O helper de fonte única preexistente (SetFormUnicodeFontDict) continua funcionando para projetos que precisam de apenas uma fonte Unicode em /DR do AcroForm. RegisterAcroFormFont é aditivo: os chamadores podem usá-lo além de SetFormUnicodeFontDict ou substituir SetFormUnicodeFontDict por completo quando mais de uma fonte Unicode é necessária
Veja também: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField |