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
| Operatorer | Fallback-beteende |
|---|---|
Tf | Väljer den ursprungliga typsnittsresursen och textstorleken; storlek noll begär avgränsad automatisk anpassning |
g rg k | Initierar textfyllnadsfärg i grått, RGB eller CMYK |
Tc Tw Tz | Tillämpar teckenavstånd, ordavstånd och horisontell textskalning på ritning och layoutmätningar |
Ts TL | Tillämpar texthus och explicit baslinjeseparation, inklusive noll eller negativt radavstånd |
Tm | Accepterar högst en matris; dess lineära del transformerar genererad text, medan annoteringslayouten bestämmer placeringen |
Tr | Väljer glyfritnings- och textklippningslägen från noll till sju |
G RG K w J j M d | Initierar 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
Tr | Glyfritning | Klippbidrag |
|---|---|---|
| 0 | Fyllning | Ingen |
| 1 | Streck | Ingen |
| 2 | Fyllning och streck | Ingen |
| 3 | Ingen glyfritning | Ingen |
| 4 | Fyllning | Glyfkonturer |
| 5 | Streck | Glyfkonturer |
| 6 | Fyllning och streck | Glyfkonturer |
| 7 | Ingen glyfritning | Glyfkonturer |
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