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
| Operatorer | Fallback-adfærd |
|---|---|
Tf | Vælger den originale font-ressource og tekststørrelsen; størrelse nul anmoder om afgrænset automatisk tilpasning |
g rg k | Initialiserer tekstens fyldfarve i gray, RGB eller CMYK |
Tc Tw Tz | Anvender tegnafstand, ordafstand og horisontal tekstskala på tegning og layoutmålinger |
Ts TL | Anvender tekstløft og eksplicit baseline-adskillelse, inklusive nul eller negativ leading |
Tm | Accepterer højst én matrix; dens lineære del transformerer genereret tekst, mens annotationens layout bestemmer placeringen |
Tr | Vælger glyph-tegnings- og tekst-clipping-tilstande fra nul til syv |
G RG K w J j M d | Initialiserer 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
Tr | Glyph paint | Clip-bidrag |
|---|---|---|
| 0 | Fyld | Ingen |
| 1 | Streg | Ingen |
| 2 | Fyld og streg | Ingen |
| 3 | Ingen glyph-tegning | Ingen |
| 4 | Fyld | Glyph-konturer |
| 5 | Streg | Glyph-konturer |
| 6 | Fyld og streg | Glyph-konturer |
| 7 | Ingen glyph-tegning | Glyph-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