Standardutseenden för native FreeText

Native FreeText-fallback tillämpar det avgränsade standardutseendeläget på genererad text, layout, automatisk anpassning och dekorationer

Ett tillhandahållet normalt utseende har företräde framför generering från FreeText-standardutseendet och rich text

Standardutseendeoperatorer

OperatorerFallback-beteende
TfVäljer den ursprungliga typsnittsresursen och textstorleken; storlek noll begär avgränsad automatisk anpassning
g rg kInitierar textfyllnadsfärg i grått, RGB eller CMYK
Tc Tw TzTillämpar teckenavstånd, ordavstånd och horisontell textskalning på ritning och layoutmätningar
Ts TLTillämpar texthus och explicit baslinjeseparation, inklusive noll eller negativt radavstånd
TmAccepterar högst en matris; dess lineära del transformerar genererad text, medan annoteringslayouten bestämmer placeringen
TrVäljer glyfritnings- och textklippningslägen från noll till sju
G RG K w J j M dInitierar streckfärg, bredd, cap, join, miter och dash-tillstånd för text och genererade dekorationer

Matrisens translatingsoperander valideras men ersätter inte FreeText-placeringen inom dess annoteringsrektangel

Horisontell skalning får vara noll eller negativ; hus, avstånd och den lineära matrisen deltar i transformerad glyf-, advance- och dekorationsgeometri

Detta är en avgränsad standardutseendeprofil, inte en allmän tolk av PDF-innehållsströmmar; operationer som inte stöds, ogiltiga antal operander, felformade värden och upprepade textmatriser ger ett renderingfel

Streckfärgkomponenter måste ligga i intervallet noll till ett, cap- och join-värden måste vara heltal från noll till två, bredden måste vara icke-negativ och miter-gränsen måste vara minst ett

En dash-array får innehålla högst 256 icke-negativa ändliga värden och en icke-tom array måste innehålla ett positivt värde; en tom array väljer heldragna streck, en udda array upprepas och fasen måste vara icke-negativ

Layout, radbrytning och placering

FreeText-justering använder synliga advance för vänster-, centrum- eller högerplacering; kodade avslutande mellanslag och deras källmappningar finns kvar när den genererade strömmen behåller dessa fragment

Ordgrännsradbrytning och hårda styckebrytningar hanteras separat; ett ej radbrytande mellanslag blir inte en ordinär ASCII-mjuk separator

Den ursprungliga råtypsnittsvägen behåller sina avgränsade regler för mellanslags- och bindestrecksradbrytning; denna acceptansmängd etablerar inte alla Unicode-fall för radbrytning, bidirektionalitet eller komplex formning

Den fysiska annoteringsrektangeln, rot-Form-gränserna och det inre klippet förblir fasta; tillfälliga barn-Form-gränser tar hänsyn till hela förfäders- och placeringskedjan

Glyfritning och textklippning

TrGlyfritningKlippbidrag
0FyllningIngen
1StreckIngen
2Fyllning och streckIngen
3Ingen glyfritningIngen
4FyllningGlyfkonturer
5StreckGlyfkonturer
6Fyllning och streckGlyfkonturer
7Ingen glyfritningGlyfkonturer

Lägena fyra till sju ackumulerar glyfkonturer över genererade körningar i ett textobjekt; det ackumulerade textklippet tillämpas efter det textobjektet på efterföljande genererade understryknings- och genomstrykningsdekorationer

Klippet använder glyfkonturer i stället för den expanderade strecksiluetten; ritningstillståndet förblir specifikt för varje körning och det omslutande grafiktillståndsomfånget begränsar klippets livstid

Initialt DA-strecktillstånd tillämpas i rotdekorationssomfånget såväl som i textomfång; åsidosättningar per körning samt sparande och återställning av grafiktillstånd behåller sin innebörd

De fyra positiva klippningsfallen är en separat acceptansport med handskrivna tvåkörningsutseenden, positiva klippta dekorationer och vita prover utanför glyfunionen

Den porten använder också ett explicit-appearance-rektangelfyllnadsvittne för att testa backend-textklippning; vittnet hävdar inte att generering av saknat utseende avger rektangelfyllnaden

Oberoende validering av positiva Tr4 till Tr7 hos läsare passerade de fyra ändliga tvåkörningsfallen med officiella MuPDF 1.28.5 och Poppler, inklusive båda glyfinteriörerna, klippta dekorationer och vita prover utanför glyfunionen

Den separata clip-only-testrevisionen använder Scale4 för att välja hela pixelceller från oförändrade sidrymds-vittnespunkter; den behåller de ursprungliga färgtrösklarna och lämnar normal rendering vid Scale1

MuPDF 1.28.2 har ett klippgränskompatibilitetsproblem när en färgändring spolar en körning före en senare körning i samma textobjekt; den tidigare körningen kan uteslutas från de ackumulerade klippgränserna

Den officiella MuPDF 1.28.5-CLI:n och den oberoende fastnålade Popplern accepterade dessa oförändrade utseenden; läsareversioner och ändliga positiva kontroller förblir åtskilda från en garanti för varje renderingpipeline

Automatisk anpassning

En DA-typsnittsstorlek på noll startar en avgränsad krympnings- och förfiningssökning från den initiala genererade layouten, med transformerade glyfbanor, advance och dekorationer i stället för endast en otransformerad radhöjd

Streckexpansion inkluderar det konservativa transformerade stödet för streckade fyrkants-cap-hörn och miter-fogar

Sökningen behåller den etablerade Cairo- och FreeType-sökvägskvantiseringen; den lovar inte den matematiskt största ideala typsnittsstorleken eller identisk hinting mellan läsare

Om inget försök passar innan den avgränsade sökningen når sitt minsta försök begränsar det fysiska klippet fortfarande publiceringen; mycket långt innehåll garanteras inte förbli helt synligt

Ursprungliga typsnitt och resursgränser

Ursprungligt inbäddat Type1C, CIDFontType0C och bart Type1-reserv stöds redan; kompletta OpenType CFF- och CFF2-standardinstans-utseendevägar behåller sina dokumenterade mappnings- och inbäddningsregler

Fristående råa CFF2-strömmar och val av icke-standardvariationskoordinater förblir utanför den utgivna CFF2-vägen

Gränser för token, objekt, arbetsminne, operationer, avkodade data och utdata gäller för tolkning, tillfälliga resurser, anpassning och publicering; avbrott pollas under det avgränsade arbetet

Misslyckande bevarar källgrafen och tillåter återställning inom samma dokument; att nå en gräns gör inte ett delvis genererat utseende till ett lyckat resultat

Reproducerbar acceptans och kvarvarande gränser

Den publika sviten är Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, distribuerad med sina tillgångar och ett komplett arkivmanifest

Dess normala läge kör 45 kandidat-/handskrivna-AP-par vid maximal kanalskillnad två, sju ursprungliga gränsgrupper och oberoende original-AP-kontinuerlig geometri vid epsilon 1e-6

Positiva original-AP-läsarrenderingar och kända vertikala pixelcellsbetraktelser registreras separat från den kontinuerliga geometrin; vare sig parekvivalens eller de ändliga betraktelserna bevisar godtycklig genererad kandidatgeometri eller godtyckliga transformerade rasteromslag

Det ändliga AP-läget kontrollerar sex behållna explicit-appearance-affina och dash-kontroller; det ersätter inte normal acceptans, genererade kandidatkontroller eller gränstester

De behållna 45 genererade utseendena passerade oberoende kontinuerlig geometri vid epsilon 1e-6; deras 90 fastnålade MuPDF- och Poppler-läsarbilder passerade också en oberoende helbildsmodell över alla 3,168,000 pixelceller med maximal kanalskillnad noll, inga överhoppade bilder och inga uteslutna celler

Den ändliga modellen härleder förväntade glyfer, transformeringar, klippning, streck och komposition från de ursprungliga handskrivna utseendena och typsnittskonturerna, med varje läsares fastnålade FreeType-kärna; den lär sig inte förväntade pixlar från de observerade bilderna

Den ursprungliga maximala kanalskillnaden förblir två och bläcktröskeln förblir 245; dessa pass täcker den behållna korpusen och de fastnålade pipelines, inte godtyckliga typsnitt, alla rendererbyggen eller ett bevis för den matematiskt största anpassade storleken

Linux- och Windows-FPC-mål kräver FPC 3.3.1 eller senare; Windows FPC använder en separat verifierad privat NoGUI-beroendebyggnad och ingen start av skrivbordsläsare

Relaterade ämnen: annoteringsfallback, annoteringsdekorationer, rich-text run-avstånd, ursprungliga råtypsnittsutseenden och OpenType CFF2-standardinstans-utseenden