Leveret Rich Text Font Fallback
Sæt THPDFHeadlessTextAppearanceOptions.FallbackFontFamilies til True for at opløse manglende rich text-glyphs fra de familier, der er leveret til HPDFBuildHeadlessRichTextFamilyAppearance eller SetRichTextFieldValueWithFamilies
Standarden er False og bevarer strengt valg af hver authored familie og style; enkelt-font tekst-builderen søger ikke andre familier
Options:= THPDFHeadlessTextAppearanceOptions.Default;
Options.FallbackFontFamilies:= True;
Document.SetRichTextFieldValueWithFamilies(FieldIndex, Runs, Families, Options);
Valg og shaping
Resolveren bruger komplette Unicode 17 extended grapheme-grænser på tværs af tilstødende authored style-runs og tomme run-sømme inden for hvert afsnit; en familievejledning splitter aldrig et surrogate-par, combining-sekvens, variation-sekvens eller joiner-cluster
Når det første berørte run leverer FontFamilyCandidates, har dets deklarerede rækkefølge forrang, og hver konfigureret kandidat skal dække hvert stylet stykke af det komplette grapheme; hvis ingen kvalificerer, gælder de eksisterende valgt-familie- og leveret-array-fallback-regler nedenfor
Hvis de valgte programmer dækker hele graphemet, forbliver deres authored familier i brug; ellers forsøger resolveren først det første berørte runs familie, efterfulgt af de leverede familier i array-rækkefølge og vælger én familie, der dækker hvert stylet stykke af det komplette grapheme med det tilsvarende faktiske regular-, bold-, italic- eller bold italic-program
Manglende style-programmer springes over som kandidater, mens et misdannet program, der skal undersøges, giver en typet invalid-font-fejl; layout- og shaping-kontroller kræver ikke synlige cmap-glyphs; et grapheme, som ingen leveret familie dækker, giver haMissingGlyph
Eksisterende kontekstuel shaping, bidirektionel ordning, cross-style mark-placering, ombrydning, eksplicitte afsnitsbrud og widget-rotation gælder de opløste appearance-runs
Værdier og transaktioner
Fallback-runs findes kun under appearance-forberedelse; kalderens runs forbliver uændret, og dokumentet gemmer den originale plain-værdi og authored rich-markup i V og RV
Typede punktstørrelser og RGB-komponenter sendes direkte til appearance-layout uden at blive rekonstrueret fra den serialiserede rich-værdi, hvis kanoniske tekstrepræsentation har sin egen præcision
Familie-bevidste FDF- og XFDF-importer accepterer samme option og beholder deres eksisterende uforanderlig-kilde-, signatur-, sikkerheds-, semantisk no-op- og publiceringskontrakter
Grænser og afhængigheder
Den samlede MaxFontBytes-grænse tæller hvert familie/style-program, der undersøges under fallback, inklusive gyldige kandidater, der ikke endeligt indlejres; appearance indlejrer kun de valgte styles
Eksisterende UTF-16 input-, glyph-, objekt- og bytebudgetter forbliver gældende, og opløsning kan give højst 4096 stylede runs; cancellation tjekkes under fontvalg og scalar-dækning samt under layout og publicering
Kompleks shaping beholder de eksisterende HarfBuzz- og FriBidi-afhængigheder; fallback bruger kun leverede font-bytes uden implicit systemfont-opdagelse, generiske aliasser, downloadede fonts eller downloadede style sheets; eksplicitte ordnede font-kandidatlister beholder understøttet inline CSS familierækkefølge
Native familie-API'er udstiller denne option; Linux navngivet-familie JSON accepterer samme opt-in-flag og forbereder rigtige kandidatprogrammer; Windows callback fallback-indlæsning forbliver separat arbejde
Accept
Seks native compiler-mål består hver 199 tjek over 30 gemte PDF'er og 1098 uafhængige værdi-, indlejret-font-, glyph-, shaping-, præcisions-, linje- og synlig pixel-tjek; rigtige subset- og fulde fontprogrammer dækker alle fire styles, cross-style combining marks, arabisk joining, hebraisk, supplementary joiners, ordnede familie-kandidater, AES R5/R6, FDF/XFDF, typede budgetter og otte valgte cancellation-checkpoints inklusive det sidste checkpoint
Friske C++Builder-interfaces kompilerer begge arkitekturer; rigtig udgivet manglende-glyph-evidence og det succesfulde faktiske primary/fallback/primary widget glyph-bevis bevares separat