Native FreeText-Default-Appearances
Der native FreeText-Fallback wendet den begrenzten Default-Appearance-Zustand auf generierten Text, Layout, automatisches Fitting und Dekorationen an
Eine vorhandene normale Appearance hat Vorrang vor der Generierung aus der FreeText-Default-Appearance und Rich-Text
Default-Appearance-Operatoren
| Operatoren | Fallback-Verhalten |
|---|---|
Tf | Wählt die ursprüngliche Font-Ressource und Textgröße; Größe null fordert begrenztes automatisches Fitting an |
g rg k | Initialisiert die Text-Füllfarbe in Grau, RGB oder CMYK |
Tc Tw Tz | Wendet Zeichenabstand, Wortabstand und horizontale Textskalierung auf Mal- und Layoutmessungen an |
Ts TL | Wendet Textanhebung und explizite Grundlinientrennung an, einschließlich null oder negativem Zeilenabstand |
Tm | Nimmt höchstens eine Matrix an; ihr linearer Teil transformiert generierten Text, während das Annotation-Layout die Platzierung bestimmt |
Tr | Wählt Glyphen-Farbmodus und Text-Clipping-Modi von null bis sieben |
G RG K w J j M d | Initialisiert Strichfarbe, Breite, Cap, Join, Miter und Dash-Zustand für Text und generierte Dekorationen |
Die Matrix-Translationsoperanden werden validiert, ersetzen aber nicht die FreeText-Platzierung innerhalb ihres Annotation-Rechtecks
Horizontale Skalierung darf null oder negativ sein; Anhebung, Abstand und die lineare Matrix fließen in die transformierte Glyphen-, Vorschub- und Dekorationsgeometrie ein
Dies ist ein begrenztes Default-Appearance-Profil, kein allgemeiner PDF-Content-Stream-Interpreter; nicht unterstützte Operatoren, ungültige Operandenzahlen, fehlerhafte Werte und wiederholte Textmatrizen erzeugen einen Rendering-Fehler
Strichfarbkomponenten müssen im Bereich null bis eins liegen, Cap- und Join-Werte müssen ganze Zahlen von null bis zwei sein, die Breite darf nicht negativ sein und das Miter-Limit muss mindestens eins betragen
Ein Dash-Array darf höchstens 256 nichtnegative endliche Werte enthalten, und ein nichtleeres Array muss einen positiven Wert enthalten; ein leeres Array wählt durchgezogene Striche, ein ungerades Array wiederholt, und die Phase darf nicht negativ sein
Layout, Umbruch und Platzierung
FreeText-Ausrichtung nutzt sichtbare Vorschübe für linke, zentrierte oder rechte Platzierung; kodierte abschließende Leerzeichen und ihre Quellzuordnungen bleiben erhalten, solange der generierte Stream diese Fragmente behält
Umbruch an Wortgrenzen und harte Absatzumbrüche werden getrennt behandelt; ein geschütztes Leerzeichen wird nicht zum gewöhnlichen ASCII-Weichtrenner
Der ursprüngliche Raw-Font-Pfad behält seine begrenzten Leerzeichen- und Bindestrich-Umbruchregeln; diese Abnahmemenge legt nicht jeden Unicode-Zeilenumbruch-, bidirektionalen oder komplexen Shaping-Fall fest
Das physische Annotation-Rechteck, die Root-Form-Grenzen und der innere Clip bleiben fixiert; temporäre Kind-Form-Grenzen berücksichtigen die vollständige Vorfahren- und Platzierungskette
Glyphen-Farbgebung und Text-Clipping
Tr | Glyphen-Farbgebung | Clip-Beitrag |
|---|---|---|
| 0 | Füllung | Keine |
| 1 | Strich | Keine |
| 2 | Füllung und Strich | Keine |
| 3 | Keine Glyphen-Farbgebung | Keine |
| 4 | Füllung | Glyphenkonturen |
| 5 | Strich | Glyphenkonturen |
| 6 | Füllung und Strich | Glyphenkonturen |
| 7 | Keine Glyphen-Farbgebung | Glyphenkonturen |
Die Modi vier bis sieben akkumulieren Glyphenkonturen über generierte Runs in einem Textobjekt; der akkumulierte Text-Clip wirkt nach diesem Textobjekt auf nachfolgende generierte Unterstreichungs- und Durchstreichungsdekorationen
Der Clip nutzt Glyphenkonturen statt der erweiterten Strichsilhouette; der Malzustand bleibt für jeden Run spezifisch, und der umschließende Graphics-State-Scope begrenzt die Clip-Lebensdauer
Der anfängliche DA-Strichzustand wird im Root-Dekorationsscope ebenso angewendet wie in Text-Scopes; Run-spezifische Überschreibungen und Graphics-State-Save/Restore behalten ihre Bedeutung
Die vier positiven Clipping-Fälle sind ein eigenes Abnahme-Gate mit handgeschriebenen Zwei-Run-Appearances, positiv geclippten Dekorationen und weißen Mustern außerhalb der Glyphenvereinigung
Dieses Gate nutzt zusätzlich einen Explicit-Appearance-Rechteckfüllungs-Zeugen zum Testen des Backend-Text-Clippings; der Zeuge behauptet nicht, dass die Generierung bei fehlender Appearance die Rechteckfüllung ausgibt
Unabhängige Tr4-bis-Tr7-Reader-Validierung bestand die vier endlichen Zwei-Run-Fälle mit offiziellem MuPDF 1.28.5 und Poppler, einschließlich beider Glypheninnenflächen, geclippter Dekorationen und weißer Muster außerhalb der Glyphenvereinigung
Die separate reine Clip-Testrevision nutzt Scale4, um vollständige Pixelzellen aus unveränderten Seitenraum-Zeugenpunkten auszuwählen; sie behält die ursprünglichen Farbschwellen und belässt normal45-Rendering bei Scale1
MuPDF 1.28.2 hat ein Clipping-Grenzen-Kompatibilitätsproblem, wenn ein Farbwechsel einen Run vor einem späteren Run im selben Textobjekt leert; der frühere Run kann aus den akkumulierten Clip-Grenzen ausgeschlossen sein
Die offizielle MuPDF-1.28.5-CLI und das unabhängig gepinnte Poppler akzeptierten diese unveränderten Appearances; Reader-Versionen und endliche Positivkontrollen bleiben unterschieden von einer Garantie für jede Rendering-Pipeline
Automatisches Fitting
Eine DA-Fontgröße von null startet eine begrenzte Verkleinerungs- und Verfeinerungssuche ausgehend vom anfänglichen generierten Layout, mit transformierten Glyphenpfaden, Vorschüben und Dekorationen statt nur einer untransformierten Zeilenhöhe
Die Stricherweiterung schließt die konservative transformierte Unterstützung von gestrichelten Square-Cap-Ecken und Miter-Verbindungen ein
Die Suche behält die etablierte Cairo- und FreeType-Pfadquantisierung bei; sie verspricht weder die mathematisch größte ideale Fontgröße noch identisches Hinting über Reader hinweg
Passt kein Versuch, bevor die begrenzte Suche ihr Minimum erreicht, begrenzt der physische Clip weiterhin die Veröffentlichung; sehr langer Inhalt bleibt nicht garantiert vollständig sichtbar
Originale Fonts und Ressourcengrenzen
Originale eingebettete Type1C-, CIDFontType0C- und reine Type1-Fallbacks werden bereits unterstützt; vollständige OpenType-CFF- und CFF2-Default-Instance-Appearance-Pfade behalten ihre dokumentierten Mapping- und Einbettungsregeln
Eigenständige rohe CFF2-Streams und die Auswahl nichtstandardmäßiger Variationskoordinaten bleiben außerhalb des freigegebenen CFF2-Pfads
Token-, Objekt-, Arbeitsspeicher-, Operations-, dekodierte-Daten- und Ausgabegrenzen gelten für Parsing, temporäre Ressourcen, Fitting und Veröffentlichung; der Abbruch wird während begrenzter Arbeit abgefragt
Ein Fehler bewahrt den Quellgraphen und erlaubt Wiederherstellung im selben Dokument; das Erreichen eines Limits macht aus einer teilweise generierten Appearance kein erfolgreiches Ergebnis
Reproduzierbare Abnahme und verbleibende Grenzen
Die öffentliche Suite ist Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, verteilt mit ihren Assets und einem vollständigen Archivmanifest
Ihr Normalmodus führt 45 Kandidaten-/Handgeschrieben-AP-Paare mit maximaler Kanaldifferenz zwei, sieben originale Limitgruppen und unabhängiger Original-AP-Kontinuumsgeometrie bei Epsilon 1e-6 aus
Positive Original-AP-Reader-Renderings und bekannte vertikale Pixelzellen-Beobachtungen werden getrennt von der Kontinuumsgeometrie erfasst; weder Paargleichheit noch diese endlichen Beobachtungen beweisen beliebige generierte Kandidatengeometrien oder beliebige transformierte Rasterhüllen
Der Finite-AP-Modus prüft sechs beibehaltene Explicit-Appearance-affine- und Dash-Kontrollen; er ersetzt weder normale Abnahme noch generierte Kandidatenprüfungen oder Limittests
Die beibehaltenen 45 generierten Appearances bestanden unabhängige Kontinuumsgeometrie bei Epsilon 1e-6; ihre 90 gepinnten MuPDF- und Poppler-Reader-Bilder bestanden ebenfalls ein unabhängiges Gesamtbildmodell über alle 3.168.000 Pixelzellen mit maximaler Kanaldifferenz null, ohne übersprungene Bilder und ohne ausgeschlossene Zellen
Dieses endliche Modell leitet erwartete Glyphen, Transformationen, Clipping, Striche und Komposition aus den originalen handgeschriebenen Appearances und Fontkonturen ab, mit dem gepinnten FreeType-Kern jedes Readers; es lernt keine erwarteten Pixel aus den beobachteten Bildern
Die originale maximale Kanaldifferenz bleibt zwei und die Tintenschwelle bleibt 245; diese Erfolge decken den beibehaltenen Korpus und gepinnte Pipelines ab, nicht beliebige Fonts, alle Renderer-Builds oder einen Beweis der mathematisch größten passenden Größe
Linux- und Windows-FPC-Ziele erfordern FPC 3.3.1 oder später; Windows-FPC nutzt einen separat verifizierten privaten NoGUI-Abhängigkeits-Build und startet keinen Desktop-Reader
Verwandte Themen: Annotation-Fallback, Annotation-Dekorationen, Rich-Text-Run-Spacing, originale Raw-Font-Appearances und OpenType-CFF2-Default-Instance-Appearances