Native FreeText default appearances
Native FreeText-fallback past de begrensde default-appearance-status toe op gegenereerde tekst, layout, automatic fitting en decorations
Een geleverde normale appearance heeft voorrang op generatie vanuit de FreeText default appearance en rich text
Default-appearance-operators
| Operators | Fallback-gedrag |
|---|---|
Tf | Selecteert de originele font-resource en tekstgrootte; grootte nul vraagt begrensd automatic fitting |
g rg k | Initialiseert de tekstvulkleur in gray, RGB of CMYK |
Tc Tw Tz | Past character spacing, word spacing en horizontale textschaal toe op painting- en layoutmetingen |
Ts TL | Past text rise en expliciete baseline-scheiding toe, inclusief nul of negatieve leading |
Tm | Accepteert ten hoogste één matrix; diens lineaire deel transformeert gegenereerde tekst, terwijl annotatielayout de plaatsing bepaalt |
Tr | Selecteert glyph paint- en text clipping-modi van nul tot en met zeven |
G RG K w J j M d | Initialiseert stroke-kleur, -breedte, cap, join, miter en dash-status voor tekst en gegenereerde decorations |
De matrix-translatieoperanden worden gevalideerd maar vervangen de FreeText-plaatsing binnen diens annotatierectangle niet
Horizontale schaal mag nul of negatief zijn; rise, spacing en de lineaire matrix doen mee aan getransformeerde glyph-, advance- en decoration-geometrie
Dit is een begrensd default-appearance-profiel, geen algemene PDF content-stream-interpreter; niet-ondersteunde operators, ongeldige operandenaantallen, misvormde waarden en herhaalde text matrices produceren een rendering-fout
Stroke-kleurcomponenten moeten in het bereik nul tot en met één liggen, cap- en joinwaarden moeten integers van nul tot en met twee zijn, breedte moet niet-negatief zijn en de miter-limiet moet ten minste één zijn
Een dash-array mag ten hoogste 256 niet-negatieve eindige waarden bevatten en een niet-lege array moet een positieve waarde bevatten; een lege array kiest solid strokes, een oneven array herhaalt en phase moet niet-negatief zijn
Layout, wrapping en plaatsing
FreeText-uitlijning gebruikt zichtbare advances voor left-, center- of right-plaatsing; encoded afsluitende spaties en diens bronmappings blijven aanwezig wanneer de gegenereerde stream die fragmenten behoudt
Word-boundary-wrapping en harde paragraafafbrekingen hebben aparte afhandeling; een non-breaking space wordt geen gewone ASCII soft separator
Het originele raw-font-pad behoudt diens begrensde space- en hyphen-wrapping-regels; deze acceptatieset vestigt niet elk Unicode regelafbrekings-, bidirectioneel of complex-shaping-geval
Het fysieke annotatierectangle, de root Form-bounds en de innerlijke clip blijven vast; tijdelijke child Form-bounds verantwoorden de complete voorouder- en plaatsingsketen
Glyph painting en text clipping
Tr | Glyph paint | Clip-bijdrage |
|---|---|---|
| 0 | Fill | Geen |
| 1 | Stroke | Geen |
| 2 | Fill en stroke | Geen |
| 3 | Geen glyph paint | Geen |
| 4 | Fill | Glyph outlines |
| 5 | Stroke | Glyph outlines |
| 6 | Fill en stroke | Glyph outlines |
| 7 | Geen glyph paint | Glyph outlines |
Modi vier tot en met zeven accumuleren glyph outlines over gegenereerde runs in één tekstobject; de geaccumuleerde text clip werkt na dat tekstobject op daaropvolgende gegenereerde underline- en strikeout-decorations
De clip gebruikt glyph outlines in plaats van het verbrede stroke-silhouet; painting-status blijft specifiek per run en de omringende graphics-state-scope begrenst de cliplevensduur
Initiële DA stroke-status wordt ook in de root decoration-scope toegepast, evenals in tekstscopes; per-run overrides en graphics-state save en restore behouden diens betekenis
De vier positieve clipping-gevallen zijn een aparte toelatingspoort met handgeschreven two-run-appearances, positieve clipped decorations en witte samples buiten de glyph-unie
Die poort gebruikt ook een explicit-appearance rectangle-fill witness om backend text clipping te testen; de witness beweert niet dat missing-appearance-generatie de rectangle fill emitteert
Onafhankelijke positieve Tr4 tot en met Tr7 reader-validatie slaagde voor de vier eindige two-run-gevallen met officiële MuPDF 1.28.5 en Poppler, inclusief beide glyph-interieurs, clipped decorations en witte samples buiten de glyph-unie
De aparte clip-only-testrevisie gebruikt Scale4 om complete pixelcellen te kiezen uit ongewijzigde page-space witness-punten; hij behoudt de originele kleurdrempels en laat normale45-rendering op Scale1
MuPDF 1.28.2 heeft een clipping-bounds-compatibiliteitsprobleem wanneer een kleurverandering één run flush-t vóór een latere run in hetzelfde tekstobject; de eerdere run kan van de geaccumuleerde clip bounds worden uitgesloten
De officiële MuPDF 1.28.5 CLI en de onafhankelijk gepinde Poppler accepteerden deze ongewijzigde appearances; reader-versies en eindige positieve controles blijven onderscheiden van een garantie voor elke rendering-pipeline
Automatic fitting
Een DA fontgrootte van nul start een begrensde verkleinings- en verfijningszoektocht vanuit de initiële gegenereerde layout, met getransformeerde glyph-paths, advances en decorations in plaats van alleen een niet-getransformeerde linehoogte
Stroke-expansie omvat de conservatieve getransformeerde support van dashed square-cap corners en miter joins
De zoektocht behoudt de gevestigde Cairo- en FreeType-path-quantization; hij belooft niet de wiskundig grootste ideale fontgrootte of identieke hinting over readers heen
Als geen trial past voordat de begrensde zoektocht diens minimale trial bereikt, begrenst de fysieke clip de publicatie nog steeds; heel lange content blijft niet gegarandeerd volledig zichtbaar
Originele fonts en resourcelimieten
Originele embedded Type1C-, CIDFontType0C- en bare Type1-fallback wordt al ondersteund; complete OpenType CFF- en CFF2 default-instance-appearance-paths behouden diens gedocumenteerde mapping- en embedding-regels
Standalone raw CFF2-streams en selectie van nondefault-variation-coördinaten blijven buiten het released CFF2-pad
Token-, object-, werkgeheugen-, operatie-, decoded-data- en uitvoerlimieten gelden voor parsing, tijdelijke resources, fitting en publicatie; annulering wordt gepolld tijdens begrensd werk
Falen behoudt de bron-graaf en staat same-document-herstel toe; een limiet bereiken maakt van een partiel gegenereerde appearance geen geslaagd resultaat
Reproduceerbare acceptatie en resterende grenzen
De publieke suite is Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, gedistribueerd met diens assets en een compleet archiefmanifest
Diens normale modus draait 45 candidate/handwritten-AP-paren bij maximaal kanaalverschil twee, zeven originele limit-groepen en onafhankelijke originele-AP continue geometrie op epsilon 1e-6
Positieve originele-AP reader-renders en bekende verticale pixelcelobservaties worden apart vastgelegd van continue geometrie; noch paarequality noch die eindige observaties bewijzen willekeurige generated-candidate-geometrie of willekeurige getransformeerde raster-enveloppen
De finite-AP-modus checkt zes behouden explicit-appearance affine- en dash-controles; hij vervangt normale acceptatie, generated-candidate-checks of limit-tests niet
De behouden 45 gegenereerde appearances slaagden voor onafhankelijke continue geometrie op epsilon 1e-6; diens 90 gepinde MuPDF- en Poppler-reader-images slaagden ook voor een onafhankelijk full-image-model over alle 3.168.000 pixelcellen met maximaal kanaalverschil nul, geen overgeslagen images en geen uitgesloten cellen
Dat eindige model leidt verwachte glyphs, transformaties, clipping, strokes en compositie af uit de originele handgeschreven appearances en font outlines, met de gepinde FreeType-kernel van elke reader; hij leert verwachte pixels niet uit de geobserveerde images
Het originele maximale kanaalverschil blijft twee en de inkt drempel blijft 245; deze passes dekken de behouden corpus en gepinde pipelines, niet willekeurige fonts, alle renderer-builds of een bewijs van de wiskundig grootste gefitte grootte
Linux- en Windows-FPC-doelen vragen FPC 3.3.1 of later; Windows FPC gebruikt een apart geverifieerde private NoGUI-dependency-build en geen desktop-reader-launch
Verwante topics: annotation fallback, annotation decorations, rich-text run spacing, originele raw-font-appearances en OpenType CFF2 default-instance-appearances