Levererad rich-text-teckensnittsfallback

Sätt THPDFHeadlessTextAppearanceOptions.FallbackFontFamilies till True för att lösa saknade rich-text-glyphs från de familjer som levereras till HPDFBuildHeadlessRichTextFamilyAppearance eller SetRichTextFieldValueWithFamilies

Standardvärdet är False, vilket bevarar strikt val av varje författad familj och stil; enskildteckensnitts-textbyggaren söker inte efter andra familjer

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

Val och shaping

Upplösaren använder kompletta Unicode 17-gränser för utökade grafem över intilliggande författade stilkörningar och tomma körningssömmar inom varje stycke; ett familjebeslut delar aldrig ett surrogatpar, en kombinerande sekvens, en variationssekvens eller en joiner-kluster

När den första berörda körningen levererar FontFamilyCandidates tar dess deklarerade ordning före, och varje konfigurerad kandidat måste täcka varje stylad del av det kompletta grafemet; om ingen kvalificerar gäller de befintliga reglerna nedan för vald familj och levererad array

Om de valda programmen täcker hela grafemet behålls deras författade familjer; annars provar upplösaren först den första berörda körningens familj och därefter de levererade familjerna i arrayordning, och väljer en familj som täcker varje stylad del av det kompletta grafemet med motsvarande faktiskt program för regular, bold, italic eller bold-italic

Saknade stilprogram hoppas över som kandidater, medan ett felaktigt program som måste inspekteras ger ett typat invalid-font-fel; layout- och shaping-kontroller kräver inte synliga cmap-glyphs; ett grafem som ingen levererad familj täcker ger haMissingGlyph

Befintlig kontextuell shaping, bidirectionell ordning, markörplacering över stilar, radbrytning, explicita styckebrytningar samt widgetrotation tillämpas på de upplösta appearance-körningarna

Värden och transaktioner

Fallback-körningar existerar bara under förberedelsen av appearance; anroparens körningar förblir oförändrade och dokumentet lagrar det ursprungliga plain-värdet samt författad rich-markup i V och RV

Typade punktstorlekar och RGB-komponenter skickas direkt till appearancelayouten utan att byggas om från det serialiserade rich-värdet, vars kanoniska textrepresentation har sin egen precision

Familje-medvetna FDF- och XFDF-importer accepterar samma alternativ och behåller sina befintliga kontrakt för oföränderlig källa, signatur, säkerhet, semantisk no-op och publicering

Gränser och beroenden

Den sammanlagda gränsen MaxFontBytes räknar varje familj-/stilprogram som inspekteras under fallback, inklusive giltiga kandidater som till slut inte bäddas in; appearancen bäddar endast in de valda stilarna

Befintliga budgetar för UTF-16-indata, glyphs, objekt och bytes gäller fortsatt, och upplösningen kan producera högst 4096 stylade körningar; avbrott kontrolleras under teckensnittsval och skalär täckning samt under layout och publicering

Komplex shaping behåller de befintliga beroendena HarfBuzz och FriBidi; fallback använder enbart levererade teckensnittsbytes, utan implicit upptäckt av systemteckensnitt, generiska alias, nerladdade teckensnitt eller nerladdade stilmallar; explicita ordnade listor med teckensnittskandidater behåller stödd inline-CSS-familjeordning

Nativa familje-API:er exponerar detta alternativ; namngiven Linux-familj i JSON accepterar samma valbara flagga och förbereder faktiska kandidatprogram; fallback-laddning via Windows-callback återstår som separat arbete

Godkännande

Sex nativa kompilatormål klarar vardera 199 kontroller över 30 sparade PDF:er samt 1098 oberoende kontroller av värden, inbäddade teckensnitt, glyphs, shaping, precision, rader och synliga pixlar; faktiska delmängds- och fullständiga teckensnittsprogram täcker alla fyra stilar, kombinerande markörer över stilar, arabisk sammanslutning, hebreiska, kompletterande joiners, ordnade familjekandidater, AES R5/R6, FDF/XFDF, typade budgetar samt åtta utvalda avbrottskontrollpunkter inklusive den sista

Färska C++Builder-gränssnitt kompilerar båda arkitekturerna; genuin publicerad evidens för saknad glyph samt det lyckade faktiska beviset med primär/fallback/primär-widgetglyphs bevaras separat

Namngivna familjer · Appearance-alternativ