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

OperatorsFallback-gedrag
TfSelecteert de originele font-resource en tekstgrootte; grootte nul vraagt begrensd automatic fitting
g rg kInitialiseert de tekstvulkleur in gray, RGB of CMYK
Tc Tw TzPast character spacing, word spacing en horizontale textschaal toe op painting- en layoutmetingen
Ts TLPast text rise en expliciete baseline-scheiding toe, inclusief nul of negatieve leading
TmAccepteert ten hoogste één matrix; diens lineaire deel transformeert gegenereerde tekst, terwijl annotatielayout de plaatsing bepaalt
TrSelecteert glyph paint- en text clipping-modi van nul tot en met zeven
G RG K w J j M dInitialiseert 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

TrGlyph paintClip-bijdrage
0FillGeen
1StrokeGeen
2Fill en strokeGeen
3Geen glyph paintGeen
4FillGlyph outlines
5StrokeGlyph outlines
6Fill en strokeGlyph outlines
7Geen glyph paintGlyph 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