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
| Family | Exact accepted names |
|---|---|
| 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 |
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