Native FreeText default-appearances

Native FreeText fallback anvender den afgrænsede default-appearance-tilstand på genereret tekst, layout, automatisk tilpasning og dekorationer

En leveret normal-appearance har forrang frem for generering ud fra FreeText default-appearance og rich text

Default-appearance-operatorer

OperatorerFallback-adfærd
TfVælger den originale font-ressource og tekststørrelsen; størrelse nul anmoder om afgrænset automatisk tilpasning
g rg kInitialiserer tekstens fyldfarve i gray, RGB eller CMYK
Tc Tw TzAnvender tegnafstand, ordafstand og horisontal tekstskala på tegning og layoutmålinger
Ts TLAnvender tekstløft og eksplicit baseline-adskillelse, inklusive nul eller negativ leading
TmAccepterer højst én matrix; dens lineære del transformerer genereret tekst, mens annotationens layout bestemmer placeringen
TrVælger glyph-tegnings- og tekst-clipping-tilstande fra nul til syv
G RG K w J j M dInitialiserer stregfarve, bredde, cap, join, miter og dash-tilstand for tekst og genererede dekorationer

Matrixens translatationsoperander valideres, men erstatter ikke FreeText-placeringen inden for dens annotationsrektangel

Horisontal skala må være nul eller negativ; løft, afstand og den lineære matrix indgår i den transformerede glyph-, advance- og dekorationgeometri

Dette er en afgrænset default-appearance-profil, ikke en generel PDF content-stream-fortolker; ikke-understøttede operatorer, ugyldige operandantal, misdannede værdier og gentagne tekstmatricer giver en rendering-fejl

Stregfarvekomponenter skal ligge i intervallet nul til én, cap- og join-værdier skal være heltal fra nul til to, bredde skal være ikke-negativ, og miter-grænsen skal være mindst én

Et dash-array kan indeholde højst 256 ikke-negative endelige værdier, og et ikke-tomt array skal indeholde en positiv værdi; et tomt array vælger ubrudte streger, et ulige array gentages, og fase skal være ikke-negativ

Layout, ombrydning og placering

FreeText-justering bruger synlige advances til venstre, center eller højre placering; kodede efterstående mellemrum og deres kildemappinger forbliver til stede, når den genererede stream bevarer disse fragmenter

Ombrydning ved ordgrænser og hårde afsnitsbrud håndteres separat; et hårdt mellemrum bliver ikke en almindelig ASCII-blød separator

Den originale raw-font-sti bevarer sine afgrænsede regler for mellemrums- og bindestregsombrydning; dette acceptsæt etablerer ikke hvert Unicode-tilfælde af linjeskift, bidirektionalitet eller kompleks formgivning

Det fysiske annotationsrektangel, root Form-grænserne og det indre clip forbliver faste; midlertidige underordnede Form-grænser indregner hele forræde- og placeringskæden

Glyph-tegning og tekst-clipping

TrGlyph paintClip-bidrag
0FyldIngen
1StregIngen
2Fyld og stregIngen
3Ingen glyph-tegningIngen
4FyldGlyph-konturer
5StregGlyph-konturer
6Fyld og stregGlyph-konturer
7Ingen glyph-tegningGlyph-konturer

Tilstand fire til syv akkumulerer glyph-konturer på tværs af genererede runs i ét tekstobjekt; det akkumulerede tekst-clip anvendes efter det tekstobjekt på efterfølgende genererede understregnings- og gennemstregsdekorationer

Clippen bruger glyph-konturer i stedet for den udvidede streg-silhuet; tegnetilstand forbliver specifik for hver run, og det omsluttende graphics-state-scope begrænser clippets levetid

Initial DA-stregtilstand anvendes i rotdékorationsscopet samt i tekstscopes; pr. run-overstyringer og graphics-state save/restore bevarer deres betydning

De fire positive clipping-tilfælde er en separat acceptgate med håndskrevne to-runs-appearances, positive clippeede dekorationer og hvide prøver uden for glyph-foreningen

Den gate bruger også et eksplicit appearance-rektangelfyld-vidne til at teste backend-tekstclipping; vidnet påstår ikke, at generering af manglende appearance udsender rektangelfyldet

Uafhængig læservalidering af positive Tr4 til Tr7 bestod de fire endelige to-runs-tilfælde med officiel MuPDF 1.28.5 og Poppler, inklusive begge glyph-indersider, clippeede dekorationer og hvide prøver uden for glyph-foreningen

Den separate clip-only-testrevision bruger Scale4 til at udvælge komplette pixelceller fra uændrede vidnepunkter i siderummet; den bevarer de originale farvetærskler og lader normal rendering stå ved Scale1

MuPDF 1.28.2 har et clipping-bounds-kompatibilitetsproblem, når en farveændring flusher én run før en senere run i samme tekstobjekt; den tidligere run kan blive udeladt af de akkumulerede clip-bounds

Den officielle MuPDF 1.28.5 CLI og den uafhængigt pinnede Poppler accepterede disse uændrede appearances; læserversioner og endelige positive kontroller forbliver adskilt fra en garanti for hver rendering pipeline

Automatisk tilpasning

En DA-skriftstørrelse på nul starter en afgrænset indskrænkings- og forfinelsessøgning ud fra det oprindelige genererede layout, med transformerede glyph-stier, advances og dekorationer frem for kun en utransformeret linjehøjde

Stregudvidelse inkluderer den konservative transformerede understøttelse af dashede square-cap-hjørner og miter-samlinger

Søgningen bevarer den etablerede Cairo- og FreeType-stikvantificering; den lover ikke den matematisk største ideelle skriftstørrelse eller identisk hinting på tværs af læsere

Hvis intet forsøg passer, inden den afgrænsede søgning når sit mindste forsøg, begrænser det fysiske clip stadig publiceringen; meget langt indhold er ikke garanteret fuldt synligt

Originale skrifttyper og ressourcegrænser

Originale indlejrede Type1C, CIDFontType0C og bar Type1-fallback understøttes allerede; komplette OpenType CFF- og CFF2-default-instance-appearance-stier bevarer deres dokumenterede mappings- og indlejrningsregler

Selvstændige raw CFF2-streams og valg af ikke-default variationskoordinater forbliver uden for den udgivne CFF2-sti

Grænser for tokens, objekter, arbejdshukommelse, operationer, dekodede data og output gælder for parsing, midlertidige ressourcer, tilpasning og publicering; cancellation polls under afgrænset arbejde

Fejl bevarer kildegrafen og tillader gendannelse i samme dokument; en nået grænse gør ikke et delvist genereret appearance til et succesfuldt resultat

Reproducerbar accept og resterende grænser

Den offentlige suite er Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, distribueret med sine assets og et komplet arkivmanifest

Dens normale tilstand kører 45 kandidat/hånskrevne AP-par ved maksimal kanalforskel to, syv originale grænsegrupper og uafhængig original-AP kontinuert geometri ved epsilon 1e-6

Positive original-AP-læserrenders og kendte lodrette pixelcelle-observationer registreres separat fra kontinuert geometri; hverken par-lighed eller de endelige observationer beviser vilkårlig genereret kandidatgeometri eller vilkårlige transformerede rasterkonvolutter

Finite-AP-tilstanden kontrollerer seks bevarede eksplicit-appearance affine- og dash-kontroller; den erstatter ikke normal accept, genererede kandidatkontroller eller grænsetests

De bevarede 45 genererede appearances bestod uafhængig kontinuert geometri ved epsilon 1e-6; deres 90 pinnede MuPDF- og Poppler-læserbilleder bestod også en uafhængig fuldbilledmodel på tværs af alle 3,168,000 pixelceller med maksimal kanalforskel nul, ingen sprangne billeder og ingen udeladte celler

Den endelige model udleder forventede glyffer, transformeringer, clipping, streger og komposition fra de originale håndskrevne appearances og fontkonturer med hver læses pinnede FreeType-kerne; den lærer ikke forventede pixels fra de observerede billeder

Den originale maksimale kanalforskel forbliver to, og blæk-tærsklen forbliver 245; disse gennemkørsler dækker det bevarede korpus og pinnede pipelines, ikke vilkårlige skrifttyper, alle renderer-builds eller et bevis for den matematisk største fittede størrelse

Linux- og Windows-FPC-mål kræver FPC 3.3.1 eller nyere; Windows-FPC bruger en separat verificeret privat NoGUI-afhængighedsbuild og ingen desktop-læserlaunch

Relaterede emner: annotation fallback, annotation-dekorationer, rich-text run-afstand, originale raw-font-appearances og OpenType CFF2 default-instance-appearances