Posunięcia standardowych fontów

Wczytany prosty tekst PDF bez /Widths używa poziomych posunięć core-font Adobe dla wspieranych znaków, zapobiegając skumulowanemu dryfowi pozycji, gdy zainstalowane podstawienie ma inne metryki

Wspierany kontrakt

FamilyExact accepted names
HelveticaHelvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
TimesTimes-Roman, Times-Bold, Times-Italic, Times-BoldItalic
CourierCourier, Courier-Bold, Courier-Oblique, Courier-BoldOblique

Każda twarz ma 230 zdekodowanych wpisów Unicode: drukowalne ASCII, Latin-1 i zdefiniowane drukowalne znaki Windows-1252, plus kreska bez kropki i, Lslash, lslash, caron, breve, dotaccent, ring, ogonek, hungarumlaut, fraction, fi i fl

U+00A0 używa posunięcia spacji, a U+00AD posunięcia dywizu; U+00B5 to znak mikro Latin-1, podczas gdy greckie U+03BC jest poza tabelą

Surowy bajt 39 StandardEncoding dekoduje do U+2019 quoteright; bajt 39 WinAnsi dekoduje do U+0027 quotesingle, który ma inne posunięcie Helvetica

Nazwy z prefiksami podzbiorów, aliasy takie jak Arial albo Courier New, inna wielkość liter, Symbol, ZapfDingbats, znaki sterujące, litery greckie i inny nieobsługiwany Unicode zachowują istniejące zachowanie fallback

Jawne PDF /Widths są zachowywane, łącznie z celowo dostosowanymi posunięciami; programy fontów i mapy kodowań pozostają oddzielne od tych tabel, a osadzona fiksatura TrueType z jawnymi szerokościami jest objęta testami akceptacji

To wyłącznie poziome posunięcia; nie dostarczają konturów glifów, ramki, metryk pionowych, shapowania ligatur ani kerningu, a renderer może nadal malować zainstalowanym podstawieniem, pozycjonując tekst ze standardowych posunięć

Mierzenie i stan tekstu

HPDFGetStandardFontWidth wykonuje niemodyfikowalne wyszukiwanie w tabeli; HPDFMeasureBaseFontWidths łączy te wyniki z istniejącym backendem platformy, gdy partia zawiera znaki fallback

Interpretator zawartości nadal stosuje rozmiar fontu, Tc, Tw, Tz, korekty TJ, macierze tekstu i transformację grafiki po rozwiązaniu posunięcia; tablice nie dodają automatycznego kerningu do tekstu PDF

Walidacja i granice niezależnych czytników

Skoncentrowana akceptacja buduje 15 rzeczywistych stron PDF obejmujących wszystkie 12 twarzy, cudzysłowy i ligatury StandardEncoding, interpunkcję i tekst akcentowany WinAnsi, jawne szerokości, osadzony program TrueType i przekształcony tekst TJ; natywne początki glifów są porównywane z niezależnym czytnikiem MuPDF

Poszukiwanie posunięć Unicode sprawdza wszystkie 2,760 wpisów tabeli; 2,756 zgadza się z MuPDF, podczas gdy cztery wpisy ułamka U+2044 rodziny Helvetica zachowują Adobe AFM WX 167 i są raportowane jawnie, bo MuPDF zwraca posunięcie ukośnikopodobne 278 dla tego znaku

Współdzielone porównanie geometrii PDF używa znaków, na których niezależny czytnik się zgadza; różnica ułamka nie jest raportowana jako przechodząca równoważność między czytnikami

Akceptacja Windows używa Tests/Delphi/Run-StandardFontMetricsAcceptance.ps1 i odtwarza tež istniejące zestawy ekstrakcji tekstu i szerokości; natywna akceptacja Linux używa Tests/Linux/Run-StandardFontMetricsAcceptance.sh z nadpisaniami FPC_EXE, PYTHON_EXE i HPDF_LINUX_OUTPUT

Wszystkie wykonania tłumią uruchamianie zewnętrznych czytników i emitują natywne logi, tablice posunięć, współrzędne glifów, podgląd renderowany i raport independent-proof.json

Podstawa metryk

Posunięcia to fakty AFM WX core-font Adobe w 1/1000 em; konwencja współrzędnych i metryk jest udokumentowana w specyfikacji Adobe Font Metrics