Windows-Rich-Font-Fallback über gelieferte Familien

Windows-File-Jobs und hpdf_document_execute_json_v1 unterstützen Opt-in-Fallback zwischen vom Aufrufer gelieferten Schriftfamilien für Rich-FDF/XFDF-Importe und originale typisierte Rich-Runs; der Fallback wählt eine Familie, die das gesamte Graphem abdeckt, einschließlich Teilen, die Rich-Style-Grenzen überschreiten

Der Default bleibt strikt: fallbackFontFamilies ist false, und eine fehlende erforderliche Glyphe schlägt normal fehl; das Liefern einer Liste wählt nicht stillschweigend installierte Systemschriften aus

Typisierte Anforderung

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Sans", "Serif"],
  "fallbackFontFamilies": true,
  "fields": [{"name": "Input", "richTextRuns": [
    {"text": "A\u03a9a\u0301", "fontStyle": "regular",
     "fontFamilyCandidates": ["Unavailable", "Primary", "Serif", "Sans"]}
  ]}]
}

fontFamilies enthält ein bis sechzehn unterschiedliche konfigurierte Labels; ASCII-Buchstaben vergleichen ohne Groß-/Kleinschreibung, andere Unicode-Codepoints vergleichen exakt; fontFamilies und fallbackFontFamilies auf Feldebene überschreiben ihre Operations-Defaults für forms.fill

Ein typisierter Run darf ein bis sechzehn geordnete fontFamilyCandidates angeben, wenn Configured-Family-Fallback aktiviert ist; unbekannte Namen bleiben in den verfassten Metadaten und werden bei der gelieferten Programmauflösung übersprungen; fehlt fontFamily, wird der erste konfigurierte deklarierte Kandidat zur Run-Familie

Eine deklarierte Kandidatenliste steuert die Präferenz vor der konfigurierten Familienreihenfolge; in diesem Beispiel wählt eine Primary-Schrift ohne Omega Serif vor Sans, wenn beide gelieferten Alternativen das gesamte Graphem abdecken

Rich-XML-Import

Für forms.import nutze die fontFamilies- und fallbackFontFamilies-Properties auf Operationsebene; der begrenzte XHTML-Decoder bewahrt jede Inline-CSS-font-family-Liste, und der echte Appearance-Composer wendet diese Reihenfolge auf die gelieferten Font-Programme an

<span style="font-family:Primary,Serif,Sans;font-weight:bold">AΩá</span>

Sowohl FDF-RV-Strings als auch XFDF-value-richtext nutzen diesen Pfad; das bestehende inline-xhtml-font-families-v1-Profil bleibt unverändert, während das tatsächliche Fallback-Verhalten separat gemeldet wird

Echte Font-Bytes

Der bestehende THPDFCABIFormDataOperationV1-Font-Callback erhält jedes kanonische konfigurierte Familienlabel und die Style-Kennung regular, bold, italic oder boldItalic; er liefert die originale begrenzte Read-IO-Tabelle zurück, und seine Bytes werden in eigenen Speicher kopiert

File-Jobs lesen dieselben Familien-/Style-Programme aus ihrem bestehenden fonts-Objekt; für jeden verwendeten Rich-Style lädt das Binding konfigurierte Kandidatenprogramme, bevor die Transaktion vorbereitet wird; passende Assets werden über typisierte Felder geteilt

Die V1-IO- und Operations-Layouts sowie bestehende exportierte Symbole bleiben unverändert; aggregierte Asset-, Font-Byte-, Speicher-, Feld-, Objekt-, Ergebnis- und Output-Budgets bleiben durchgesetzt; Callback-Fehler bleiben sticky, und Abbruch-Checkpoints decken Parsing, Laden, Vorbereitung und Veröffentlichung ab

Transaktionen und Limits

AES-Authentifizierung, Bewahrung signierter Revisionen, DocMDP, Feld-Locks und Read-only-Prüfungen nutzen die bestehende authentifizierte Transaktion; Rich-Werte, Styles, Schriften und Appearance-Semantik mit derselben Eingabe können einen byteidentischen No-op erzeugen, einschließlich schreibgeschützter Felder

PDF- und JSON-Callbacks müssen beide erfolgreich sein, bevor sich der aktuelle Kontext ändert; verwerfe emittierte Kandidaten-Bytes nach jedem Status ungleich null; File-Jobs bereiten den vollständigen Kandidaten vor, bevor sie das Ziel ersetzen

formDataExchange.suppliedFamilyFallback meldet default=false, richOnly=true, wholeGrapheme=true, fontFamilyCandidates=true, maxCandidates=16 und candidateOrder=declared-before-configured

Dieses Feature gilt für Rich-Inhalte; gewöhnlicher Scalar-, Choice-Label- und Button-Caption-Fallback bleiben separate Fähigkeiten; eine Teilmenge-erste-Schrift ohne die Checkbox-Caption-Glyphe braucht beispielsweise weiterhin eine passende Scalar-Schrift oder künftige Scalar-Fallback-Unterstützung

Direktes Rich-Filling geladener Jobs, die ältere Job-Handle-/Font-Callback-Erweiterung, beliebige CSS-Layouts, externe Stylesheets sowie weitere FDF/XFDF-Annotation-, Datei-, Action- oder inkrementelle Interchange-Arbeit bleiben separat

Verwandte Themen

Originale typisierte Rich-Füllung, Windows-Form-Data-Austausch, Versionierter Font-Transport, Native gelieferte Familien