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

FamiljExakt accepterade namn
HelveticaHelvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
TimesTimes-Roman, Times-Bold, Times-Italic, Times-BoldItalic
CourierCourier, 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