|
THotPDF.RegisterAcroFormFont THotPDF AcroForm
|
AddXFAPacket AcroForm-Unterstützung SetFormUnicodeFontDict |
|
Registriert eine zusätzliche Unicode-Schriftart (Type 0 / CID-basiert) zur Aufnahme in das AcroForm-Standardressourcen-Verzeichnis (/DR) — Ermöglicht es einem einzelnen PDF-Dokument, AcroForm-Widgets gleichzeitig mehrere Unicode-Schriftarten zur Verfügung zu stellen — Dies wird typischerweise für mehrsprachige Formulare verwendet, die beispielsweise eine lateinische, eine CJK- und eine arabische Schriftart im selben Formular benötigen
Delphi-Syntax: procedure RegisterAcroFormFont(const FontResourceName: AnsiString; FontIndirectRef: THPDFObject);
Beschreibung AcroForm-Widgets verweisen auf Schriftarten über ein Standardressourcen-Verzeichnis (/DR) im AcroForm-Dictionary, das als gemeinsamer Ressourcen-Pool für alle Darstellungs-Streams von Formularfeldern dient — Vor v2.119.42 bot das AcroForm /DR genau eine Unicode-Schriftart (typischerweise die über SetFormUnicodeFontDict registrierte Type-0-Hilfsschriftart), was mehrsprachige Formular-Workflows einschränkte, da jedes Widget über dasselbe Schriftprogramm gerendert werden musste
Nach v2.119.42 können Aufrufer zusätzliche Unicode-Schriftarten unter beliebigen Ressourcennamen registrieren — Jede registrierte Schriftart wird beim Aufruf von EndDoc zu einem Eintrag der Form /DR /Font /<name> <indirekte Referenz> im AcroForm-/DR-Dictionary — Widgets-Darstellungs-Streams können dann auf jeden der registrierten Namen über ihren eigenen /Tf <name> <größe>-Operator im Darstellungs-Inhaltsstream verweisen
Parameter
Typischer Arbeitsablauf (mehrsprachiges Formular)
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);
Nun können Widgets mit arabischem Inhalt ihre Darstellungs-Streams mit /NotoSansArab 12 Tf erstellen, während Widgets mit japanischem Inhalt /NotoSansJP 12 Tf verwenden — Sie teilen sich einen dokumentweiten AcroForm-/DR-Ressourcenpool
Koexistenz mit SetFormUnicodeFontDict Die bereits vorhandene Ein-Schriftarten-Hilfsfunktion (SetFormUnicodeFontDict) funktioniert weiterhin für Projekte, die nur eine Unicode-Schriftart im AcroForm /DR benötigen — RegisterAcroFormFont ist additiv: Aufrufer können sie zusätzlich zu SetFormUnicodeFontDict verwenden oder SetFormUnicodeFontDict vollständig ersetzen, wenn mehr als eine Unicode-Schriftart benötigt wird
Siehe auch: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm-Unterstützung, THPDFPage.AddTextField |