Rich-Text-Font-Fallback über gelieferte Schriften

Setze THPDFHeadlessTextAppearanceOptions.FallbackFontFamilies auf True, um fehlende Rich-Text-Glyphen aus den Familien aufzulösen, die HPDFBuildHeadlessRichTextFamilyAppearance oder SetRichTextFieldValueWithFamilies geliefert wurden

Der Default ist False und bewahrt die strikte Auswahl jeder verfassten Familie und jedes Styles; der Single-Font-Text-Builder sucht nicht nach anderen Familien

Options:= THPDFHeadlessTextAppearanceOptions.Default;
Options.FallbackFontFamilies:= True;
Document.SetRichTextFieldValueWithFamilies(FieldIndex, Runs, Families, Options);

Auswahl und Shaping

Der Resolver nutzt vollständige Unicode-17-extended-Graphem-Grenzen über benachbarte verfasste Style-Runs hinweg und leere Run-Nähte innerhalb jedes Absatzes; eine Familienentscheidung spaltet nie ein Surrogatpaar, eine Combining-Sequenz, eine Variationssequenz oder einen Joiner-Cluster

Wenn der erste betroffene Run FontFamilyCandidates liefert, hat seine deklarierte Reihenfolge Vorrang, und jeder konfigurierte Kandidat muss jeden stilisierten Teil des vollständigen Graphems abdecken; qualifiziert sich keiner, greifen die bestehenden Selected-Family- und Supplied-Array-Fallback-Regeln weiter unten

Decken die ausgewählten Programme das gesamte Graphem ab, bleiben ihre verfassten Familien in Gebrauch; andernfalls versucht der Resolver zuerst die Familie des ersten betroffenen Runs, dann die gelieferten Familien in Array-Reihenfolge, und wählt eine Familie, die jeden stilisierten Teil des vollständigen Graphems mit dem entsprechenden echten Regular-, Bold-, Italic- oder Bold-Italic-Programm abdeckt

Fehlende Style-Programme werden als Kandidaten übersprungen, während ein fehlerhaftes Programm, das inspiziert werden muss, einen typisierten Invalid-Font-Fehler erzeugt; Layout- und Shaping-Steuerungen erfordern keine sichtbaren cmap-Glyphen; ein Graphem, das keine gelieferte Familie abdeckt, erzeugt haMissingGlyph

Bestehendes kontextuelles Shaping, bidirektionale Ordnung, Cross-Style-Mark-Platzierung, Umbruch, explizite Absatzumbrüche und Widget-Rotation gelten für die aufgelösten Appearance-Runs

Werte und Transaktionen

Fallback-Runs existieren nur während der Appearance-Vorbereitung; die Runs des Aufrufers bleiben unverändert, und das Dokument speichert den originalen Plain-Wert und das verfasste Rich-Markup in V und RV

Typisierte Punktgrößen und RGB-Komponenten gehen direkt ins Appearance-Layout, ohne aus dem serialisierten Rich-Wert rekonstruiert zu werden, dessen kanonische Textdarstellung ihre eigene Präzision hat

Familienbewusste FDF- und XFDF-Importe akzeptieren dieselbe Option und behalten ihre bestehenden Immutable-Source-, Signatur-, Security-, semantischen No-op- und Veröffentlichungs-Contracts

Grenzen und Abhängigkeiten

Das aggregierte MaxFontBytes-Limit zählt jedes während des Fallbacks inspizierte Familien-/Style-Programm, einschließlich gültiger Kandidaten, die am Ende nicht eingebettet werden; die Appearance bettet nur die ausgewählten Styles ein

Bestehende UTF-16-Eingabe-, Glyphen-, Objekt- und Byte-Budgets bleiben in Kraft, und die Auflösung erzeugt höchstens 4096 stilisierte Runs; Abbruch wird während der Font-Auswahl und Scalar-Abdeckung sowie während Layout und Veröffentlichung geprüft

Komplexes Shaping behält die bestehenden HarfBuzz- und FriBidi-Abhängigkeiten; der Fallback nutzt ausschließlich gelieferte Font-Bytes, ohne implizite Systemschriftsuche, generische Aliases, heruntergeladene Schriften oder heruntergeladene Stylesheets; explizite geordnete Font-Kandidatenlisten behalten die unterstützte Inline-CSS-Familienreihenfolge

Native Familien-APIs legen diese Option offen; Linux-Named-Family-JSON akzeptiert dasselbe Opt-in-Flag und bereitet echte Kandidatenprogramme vor; das Laden des Windows-Callback-Fallbacks bleibt separate Arbeit

Abnahme

Sechs native Compiler-Ziele bestehen jeweils 199 Prüfungen über 30 gespeicherte PDFs und 1098 unabhängige Wert-, eingebettete-Schrift-, Glyphen-, Shaping-, Präzisions-, Zeilen- und sichtbare-Pixel-Prüfungen; echte Subset- und Full-Font-Programme decken alle vier Styles, Cross-Style-Combining-Marks, arabische Verbindung, Hebräisch, supplementäre Joiner, geordnete Familienkandidaten, AES R5/R6, FDF/XFDF, typisierte Budgets und acht ausgewählte Abbruch-Checkpoints einschließlich des finalen Checkpoints ab

Frische C++Builder-Interfaces kompilieren beide Architekturen; echte freigegebene Missing-Glyph-Evidence und der erfolgreiche echte Primary/Fallback/Primary-Widget-Glyphen-Nachweis werden separat aufbewahrt

Benannte Familien · Appearance-Optionen