Advances för standardteckensnitt
Enkelt PDF-textinnehåll utan /Widths använder Adobe-kärnteckensnittens horisontella advances för tecken som stöds, vilket förhindrar att positionen ackumulerat driver när en installerad ersättning har andra mått
Gällande kontrakt
| Familj | Exakt accepterade namn |
|---|---|
| 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 |
Varje typsnitt har 230 avkodade Unicode-poster: utskrivbar ASCII, Latin-1 och definierade utskrivbara Windows-1252-tecken, plus dotless i, Lslash, lslash, caron, breve, dotaccent, ring, ogonek, hungarumlaut, fraction, fi och fl
U+00A0 använder mellanslagets advance och U+00AD använder bindestreckets advance; U+00B5 är mikrotecknet från Latin-1, medan grekiska U+03BC ligger utanför tabellen
Rå StandardEncoding-byte 39 avkodas till U+2019 quoteright; WinAnsi-byte 39 avkodas till U+0027 quotesingle, som har en annan advance i Helvetica
Namn med subset-prefix, alias som Arial eller Courier New, annan versalisering, Symbol, ZapfDingbats, kontrolltecken, grekiska bokstäver och övrig Unicode som saknar stöd behåller det befintliga fallback-beteendet
Uttryckliga PDF /Widths bevaras, inklusive medvetet anpassade advances; typsnittsprogram och kodningstabeller hålls separata från dessa tabeller, och en inbäddad TrueType-fixture med uttryckliga bredder täcks av acceptanstester
Detta gäller enbart horisontella advances; tabellerna ger inga glyfkonturer, bounding boxar, vertikala mått, ligaturformning eller kerning, och en renderer kan fortfarande rita med en installerad ersättning medan texten positioneras utifrån standard-advances
Mätning och texttillstånd
HPDFGetStandardFontWidth gör ett oföränderligt tabelluppslag; HPDFMeasureBaseFontWidths kombinerar resultaten med den befintliga plattformsbackenden när en batch innehåller fallback-tecken
Innehållstolkaren fortsätter att tillämpa teckenstorlek, Tc-, Tw-, Tz- och TJ-justeringar, textmatriser och grafiktransformationen efter att advancen har slagits upp; tabellerna lägger inte till automatisk kerning i PDF-text
Validering och gränser mot oberoende läsare
Den fokuserade acceptansen bygger 15 faktiska PDF-sidor som täcker alla 12 typsnitt, StandardEncoding-citattecken och ligaturer, WinAnsi-skiljetecken och accenterad text, uttryckliga bredder, ett inbäddat TrueType-program samt transformerad TJ-text; ursprungliga glyforginer jämförs med en oberoende MuPDF-läsare
Unicode-sonden för advances kontrollerar alla 2 760 tabellposterna; 2 756 stämmer med MuPDF, medan de fyra bråkposterna U+2044 i Helvetica-familjen behåller Adobe AFM WX 167 och rapporteras explicit eftersom MuPDF returnerar den snedstreckslika advancen 278 för det tecknet
Den delade PDF-geometrijämförelsen använder tecken som den oberoende läsaren håller med om; bråkskillnaden rapporteras inte som godkänd ekvivalens mellan läsare
Windows-acceptansen använder Tests/Delphi/Run-StandardFontMetricsAcceptance.ps1 och kör även om de befintliga sviterna för textutdragning och bredder; acceptans på native Linux använder Tests/Linux/Run-StandardFontMetricsAcceptance.sh med override-flaggorna FPC_EXE, PYTHON_EXE och HPDF_LINUX_OUTPUT
Alla körningar stoppar externa läsare från att startas och skriver ut native-loggar, advancetabeller, glyfkoordinater, en renderad förhandsvisning och en independent-proof.json-rapport
Måttbas
Advances är AFM WX-fakta för Adobes kärnteckensnitt i 1/1000 em; koordinat- och måttkonventionen dokumenteras i Adobe Font Metrics-specifikationen