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

FamilieExakt akzeptierte Namen
HelveticaHelvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
TimesTimes-Roman, Times-Bold, Times-Italic, Times-BoldItalic
CourierCourier, 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