Standaardfont-advances

Geladen eenvoudige PDF-tekst zonder /Widths gebruikt Adobe core-font horizontale advances voor ondersteunde tekens, wat cumulatieve positie-afdrift voorkomt wanneer een installed substituut andere metrics heeft

Ondersteund contract

FamilieExact geaccepteerde namen
HelveticaHelvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
TimesTimes-Roman, Times-Bold, Times-Italic, Times-BoldItalic
CourierCourier, Courier-Bold, Courier-Oblique, Courier-BoldOblique

Elk face heeft 230 gedecodeerde Unicode-entries: printable ASCII, Latin-1 en gedefinieerde printable Windows-1252-tekens, plus dotless i, Lslash, lslash, caron, breve, dotaccent, ring, ogonek, hungarumlaut, fraction, fi en fl

U+00A0 gebruikt de space-advance en U+00AD de hyphen-advance; U+00B5 is het Latin-1 micro-teken, terwijl Griekse U+03BC buiten de tabel valt

Raw StandardEncoding-byte 39 decodeert naar U+2019 quoteright; WinAnsi-byte 39 decodeert naar U+0027 quotesingle, die een andere Helvetica-advance heeft

Namen met subset-prefixes, aliassen zoals Arial of Courier New, andere kapitalisering, Symbol, ZapfDingbats, controletekens, Griekse letters en andere niet-ondersteunde Unicode behouden het bestaande fallback-gedrag

Expliciete PDF /Widths worden behouden, inclusief bewust aangepaste advances; fontprogramma's en encoding-maps blijven gescheiden van deze tabellen, en een embedded TrueType-fixture met expliciete widths wordt gedekt door acceptatietests

Dit zijn uitsluitend horizontale advances; ze leveren geen glyph-outlines, bounding boxes, verticale metrics, ligature-shaping of kerning, en een renderer kan nog steeds met een installed substituut schilderen terwijl tekst wordt gepositioneerd vanuit standard advances

Meting en tekststatus

HPDFGetStandardFontWidth doet een immutable tabel-opzoek; HPDFMeasureBaseFontWidths combineert die resultaten met de bestaande platform-backend wanneer een batch fallback-tekens bevat

De content-interpreter blijft fontsize, Tc, Tw, Tz, TJ-correcties, tekstmatrices en de graphics-transformatie toepassen na het oplossen van de advance; de tabellen voegen geen automatische kerning toe aan PDF-tekst

Validatie en onafhankelijke reader-grenzen

De gerichte acceptatie bouwt 15 echte PDF-pagina's die alle 12 faces dekken, StandardEncoding-quotes en -ligatures, WinAnsi-punctuatie en tekst met accenten, expliciete widths, een embedded TrueType-programma en getransformeerde TJ-tekst; native glyph-oorsprongen worden vergeleken met een onafhankelijke MuPDF-reader

De Unicode advance-probe checkt alle 2760 tabel-entries; 2756 stemmen overeen met MuPDF, terwijl de vier Helvetica-family U+2044-fraction-entries Adobe AFM WX 167 behouden en expliciet worden gerapporteerd omdat MuPDF voor dat teken de slash-achtige advance 278 teruggeeft

De gedeelde PDF-geometrievergelijking gebruikt tekens waarop de onafhankelijke reader overeenstemt; het fraction-verschil wordt niet gerapporteerd als geslaagde cross-reader-equivalentie

Windows-acceptatie gebruikt Tests/Delphi/Run-StandardFontMetricsAcceptance.ps1 en replayt ook bestaande tekstextractie- en width-suites; native Linux-acceptatie gebruikt Tests/Linux/Run-StandardFontMetricsAcceptance.sh met FPC_EXE-, PYTHON_EXE- en HPDF_LINUX_OUTPUT-overrides

Alle uitvoeringen onderdrukken het starten van externe readers en schrijven native logs, advance-tabellen, glyph-coördinaten, een gerenderde preview en een independent-proof.json-rapport

Metric-basis

Advances zijn de Adobe core-font AFM WX-feiten in 1/1000 em; de coördinaat- en metric-conventie staat beschreven in de Adobe Font Metrics specification