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
| Familie | Eksakte accepterede navne |
|---|---|
| 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 |
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