Supplied Rich Text Font Fallback

Zet THPDFHeadlessTextAppearanceOptions.FallbackFontFamilies op True om ontbrekende rich-text-glyphs op te lossen vanuit de families die zijn meegeleverd aan HPDFBuildHeadlessRichTextFamilyAppearance of SetRichTextFieldValueWithFamilies

De default is False, met behoud van strikte selectie van elke authored family en stijl; de single-font-tekst-builder zoekt niet naar andere families

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

Selectie en shaping

De resolver gebruikt complete Unicode 17 extended grapheme-grenzen over aangrenzende authored stijl-runs en lege run-naden binnen elke paragraaf heen; een family-beslissing splitst nooit een surrogate pair, combining-sequentie, variatie-sequentie of joiner-cluster

Wanneer de eerste getroffen run FontFamilyCandidates levert, heeft diens gedeclareerde volgorde voorrang en moet elke geconfigureerde candidate elk gestijld deel van het complete grapheme dekken; wanneer geen enkele kwalificeert, gelden de bestaande selected-family- en supplied-array-fallback-regels hieronder

Wanneer de geselecteerde programma's het hele grapheme dekken, blijven diens authored families in gebruik; anders probeert de resolver eerst de family van de eerste getroffen run, gevolgd door de supplied families in array-volgorde, en kiest één family die elk gestijld deel van het complete grapheme dekt met het bijbehorende echte regular-, bold-, italic- of bold-italic-programma

Ontbrekende stijlprogramma's worden als candidates overgeslagen, terwijl een misvormd programma dat geïnspecteerd moet worden een getypeerde invalid-font-fout oplevert; layout- en shaping-controls vragen geen zichtbare cmap-glyphs; een grapheme dat geen enkele supplied family dekt levert haMissingGlyph op

Bestaande contextual shaping, bidirectional ordering, cross-style mark-plaatsing, wrapping, expliciete paragraafbreuken en widget-rotatie gelden voor de opgeloste appearance-runs

Waarden en transacties

Fallback-runs bestaan alleen tijdens appearance-voorbereiding; de runs van de aanroeper blijven ongewijzigd en het document bewaart de originele platte waarde en authored rich-markup in V en RV

Getypeerde puntegroottes en RGB-componenten gaan direct naar appearance-layout zonder te worden gereconstrueerd uit de geserialiseerde rich-waarde, waarvan de canonieke tekstrepresentatie diens eigen precisie heeft

Family-aware FDF- en XFDF-imports accepteren dezelfde optie en behouden diens bestaande immutable-source-, signature-, security-, semantische no-op- en publicatie-contracten

Grenzen en dependencies

De geaggregeerde MaxFontBytes-limiet telt elk tijdens fallback geïnspecteerd family/stijl-programma mee, inclusief geldige candidates die uiteindelijk niet worden geembed; de appearance embedt alleen de geselecteerde stijlen

Bestaande UTF-16-invoer-, glyph-, object- en bytebudgetten blijven van kracht, en resolutie mag hoogstens 4096 gestijlde runs produceren; annulering wordt gecheckt tijdens fontselectie en scalar-dekking evenals tijdens layout en publicatie

Complex shaping behoudt de bestaande HarfBuzz- en FriBidi-dependencies; fallback gebruikt uitsluitend supplied fontbytes, zonder impliciete system font-discovery, generieke aliassen, gedownloade fonts of gedownloade style sheets; expliciete geordende font candidate-lijsten behouden ondersteunde inline CSS family-volgorde

Native family-API's leggen deze optie bloot; Linux named-family JSON accepteert dezelfde opt-in-vlag en bereidt echte candidate-programma's voor; Windows callback fallback-loading blijft apart werk

Acceptatie

Zes native compiler-targets halen elk 199 checks over 30 opgeslagen PDF's en 1098 onafhankelijke waarde-, embedded-font-, glyph-, shaping-, precisie-, regel- en zichtbare-pixel-checks; echte subset- en volledige fontprogramma's dekken alle vier de stijlen, cross-style combining marks, Arabische joining, Hebreeuws, supplementary joiners, geordende family-candidates, AES R5/R6, FDF/XFDF, getypeerde budgetten en acht gekozen annuleringscheckpoints inclusief het finale checkpoint

Versse C++Builder-interfaces compileren op beide architecturen; echt vrijgegeven missing-glyph-bewijs en het geslaagde echte primary/fallback/primary-widget-glyph-bewijs worden apart bewaard

Named families · Appearance options