Standard-Schrift-Advances
Geladener einfacher PDF-Text ohne /Widths nutzt horizontale Adobe-Core-Font-Advances für unterstützte Zeichen und verhindert so kumulativen Positionsdrift, wenn eine installierte Ersatzschrift andere Metriken hat
Unterstützter Contract
| Familie | Exakt akzeptierte Namen |
|---|---|
| Helvetica | Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique |
| Times | Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic |
| Courier | Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique |
Jedes Face hat 230 decodierte Unicode-Einträge: druckbares ASCII, Latin-1 und definierte druckbare Windows-1252-Zeichen, plus punktloses i, Lslash, lslash, Caron, Breve, Dotaccent, Ring, Ogonek, Hungarumlaut, Fraction, fi und fl
U+00A0 nutzt das Space-Advance und U+00AD das Hyphen-Advance; U+00B5 ist das Latin-1-Mikrozeichen, während das griechische U+03BC außerhalb der Tabelle liegt
Rohes StandardEncoding-Byte 39 decodiert zu U+2019 quoteright; WinAnsi-Byte 39 decodiert zu U+0027 quotesingle, das ein anderes Helvetica-Advance hat
Namen mit Subset-Präfixen, Aliases wie Arial oder Courier New, anderer Groß-/Kleinschreibung, Symbol, ZapfDingbats, Steuerzeichen, griechische Buchstaben und anderes nicht unterstütztes Unicode behalten das bestehende Fallback-Verhalten
Explizite PDF-/Widths bleiben erhalten, einschließlich absichtlich angepasster Advances; Font-Programme und Encoding-Maps bleiben von diesen Tabellen getrennt, und ein eingebettetes TrueType-Fixture mit expliziten Breiten ist durch Abnahmetests abgedeckt
Dies sind ausschließlich horizontale Advances; sie liefern keine Glyphen-Umrisse, Bounding Boxes, vertikalen Metriken, Ligatur-Shaping oder Kerning, und ein Renderer kann weiterhin mit einer installierten Ersatzschrift malen, während er Text anhand der Standard-Advances positioniert
Messung und Textzustand
HPDFGetStandardFontWidth führt eine unveränderliche Tabellensuche aus; HPDFMeasureBaseFontWidths kombiniert diese Ergebnisse mit dem bestehenden Plattform-Backend, wenn ein Batch Fallback-Zeichen enthält
Der Content-Interpreter wendet nach dem Auflösen des Advance weiter Schriftgröße, Tc, Tw, Tz, TJ-Anpassungen, Textmatrizen und die Grafiktransformation an; die Tabellen fügen PDF-Text kein automatisches Kerning hinzu
Validierung und Grenzen unabhängiger Reader
Die fokussierte Abnahme baut 15 echte PDF-Seiten, die alle 12 Faces, StandardEncoding-Anführungszeichen und Ligaturen, WinAnsi-Interpunktion und akzentuierten Text, explizite Breiten, ein eingebettetes TrueType-Programm und transformierten TJ-Text abdecken; native Glyphen-Ursprünge werden mit einem unabhängigen MuPDF-Reader verglichen
Die Unicode-Advance-Sonde prüft alle 2,760 Tabelleneinträge; 2,756 stimmen mit MuPDF überein, während die vier Helvetica-Familien-U+2044-Fraction-Einträge Adobe AFM WX 167 behalten und explizit gemeldet werden, weil MuPDF für dieses Zeichen das schrägstrichähnliche Advance 278 zurückgibt
Der gemeinsame PDF-Geometrievergleich nutzt Zeichen, bei denen der unabhängige Reader übereinstimmt; die Fraction-Differenz wird nicht als bestehende Cross-Reader-Äquivalenz gemeldet
Die Windows-Abnahme nutzt Tests/Delphi/Run-StandardFontMetricsAcceptance.ps1 und spielt zusätzlich bestehende Textextraktions- und Breiten-Suiten ab; die native Linux-Abnahme nutzt Tests/Linux/Run-StandardFontMetricsAcceptance.sh mit FPC_EXE-, PYTHON_EXE- und HPDF_LINUX_OUTPUT-Overrides
Alle Ausführungen unterdrücken das Starten externer Reader und geben native Logs, Advance-Tabellen, Glyphenkoordinaten, eine gerenderte Vorschau und einen independent-proof.json-Bericht aus
Metrische Basis
Advances sind die Adobe-Core-Font-AFM-WX-Fakten in 1/1000 em; die Koordinaten- und Metrikkonvention ist in der Adobe Font Metrics specification dokumentiert