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

OperatorenFallback-Verhalten
TfWählt die ursprüngliche Font-Ressource und Textgröße; Größe null fordert begrenztes automatisches Fitting an
g rg kInitialisiert die Text-Füllfarbe in Grau, RGB oder CMYK
Tc Tw TzWendet Zeichenabstand, Wortabstand und horizontale Textskalierung auf Mal- und Layoutmessungen an
Ts TLWendet Textanhebung und explizite Grundlinientrennung an, einschließlich null oder negativem Zeilenabstand
TmNimmt höchstens eine Matrix an; ihr linearer Teil transformiert generierten Text, während das Annotation-Layout die Platzierung bestimmt
TrWählt Glyphen-Farbmodus und Text-Clipping-Modi von null bis sieben
G RG K w J j M dInitialisiert 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

TrGlyphen-FarbgebungClip-Beitrag
0FüllungKeine
1StrichKeine
2Füllung und StrichKeine
3Keine Glyphen-FarbgebungKeine
4FüllungGlyphenkonturen
5StrichGlyphenkonturen
6Füllung und StrichGlyphenkonturen
7Keine Glyphen-FarbgebungGlyphenkonturen

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