Standard font advances

Indlæst simpel PDF-tekst uden /Widths bruger Adobe kernefont vandrette advances for understøttede tegn og forhindrer kumulativ positionsdrift, når en installeret substitut har andre metrics

Understøttet kontrakt

FamilieEksakte accepterede navne
HelveticaHelvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
TimesTimes-Roman, Times-Bold, Times-Italic, Times-BoldItalic
CourierCourier, Courier-Bold, Courier-Oblique, Courier-BoldOblique

Hver face har 230 dekodede Unicode-indgange: printbar ASCII, Latin-1 og definerede printbare Windows-1252-tegn plus dotless i, Lslash, lslash, caron, breve, dotaccent, ring, ogonek, hungarumlaut, fraction, fi og fl

U+00A0 bruger mellemrums-advance, og U+00AD bruger bindestregs-advance; U+00B5 er Latin-1 micro-tegnet, mens græsk U+03BC er uden for tabellen

Rå StandardEncoding-byte 39 dekodes til U+2019 quoteright; WinAnsi-byte 39 dekodes til U+0027 quotesingle, som har en anden Helvetica-advance

Navne med subset-præfikser, aliasser som Arial eller Courier New, anden versalisering, Symbol, ZapfDingbats, kontroltegn, græske bogstaver og anden ikke-understøttet Unicode beholder den eksisterende fallback-adfærd

Eksplicitte PDF /Widths bevares, inklusive bevidst tilpassede advances; fontprogrammer og encoding-maps forbliver separate fra disse tabeller, og en indlejret TrueType-fixture med eksplicitte bredder er dækket af accepttests

Dette er kun vandrette advances; de leverer ikke glyph-outlines, bounding boxes, lodrette metrics, ligatur-shaping eller kerning, og en renderer kan stadig male med en installeret substitut, mens tekst positioneres fra standard-advances

Måling og teksttilstand

HPDFGetStandardFontWidth udfører et uforanderligt tabelopslag; HPDFMeasureBaseFontWidths kombinerer de resultater med den eksisterende platform-backend, når en batch indeholder fallback-tegn

Content-fortolkeren fortsætter med at anvende fontstørrelse, Tc, Tw, Tz, TJ-justeringer, tekstmatricer og grafiktransformationen efter opløsning af advance; tabellerne tilføjer ikke automatisk kerning til PDF-tekst

Validering og uafhængige reader-grænser

Den fokuserede accept bygger 15 rigtige PDF-sider, der dækker alle 12 faces, StandardEncoding anførselstegn og ligaturer, WinAnsi tegnsætning og accenttegnstekst, eksplicitte bredder, et indlejret TrueType-program og transformeret TJ-tekst; native glyph-originer sammenlignes med en uafhængig MuPDF-reader

Unicode advance-proben tjekker alle 2.760 tabelindgange; 2.756 er enige med MuPDF, mens de fire Helvetica-familie U+2044 fraction-indgange beholder Adobe AFM WX 167 og rapporteres eksplicit, fordi MuPDF returnerer slash-lignende advance 278 for det tegn

Den delte PDF-geometrisammenligning bruger tegn, hvor den uafhængige reader er enig; fraction-forskellen rapporteres ikke som en bestået cross-reader-ækvivalens

Windows-accept bruger Tests/Delphi/Run-StandardFontMetricsAcceptance.ps1 og afspiller også eksisterende teksteekstraktions- og breddesuiter; native Linux-accept bruger Tests/Linux/Run-StandardFontMetricsAcceptance.sh med FPC_EXE-, PYTHON_EXE- og HPDF_LINUX_OUTPUT-overrides

Alle afviklinger undertrykker ekstern reader-start og emitterer native logs, advance-tabeller, glyph-koordinater, en renderet preview og en independent-proof.json-rapport

Metrics-basis

Advances er Adobe kernefont AFM WX-fakta i 1/1000 em; koordinat- og metrics-konventionen er dokumenteret i Adobe Font Metrics-specifikationen