Pro edycja
Narzędzia do czcionek
W skrócie
Dział zatytułowany „W skrócie”NextPDF Pro inspekcjonuje osadzone programy czcionek, identyfikuje czcionki podzbioru według ich standardowej konwencji nazewniczej i tworzy strukturalny plan de-subsettingu z szacowanym wpływem na rozmiar.
Dostępność i licencjonowanie
Dział zatytułowany „Dostępność i licencjonowanie”Ta funkcja jest dostarczana w NextPDF Pro (nextpdf/pro) i aktywuje się wraz z kopertą licencyjną poziomu Pro. Wdrożenie bez tego uprawnienia nie ładuje klas tej funkcji. Porównaj edycje i uzyskaj licencję.
Żadna flaga licencyjna dla poszczególnych funkcji nie bramkuje tego modułu. Klasy Font Tools są dostępne zawsze, gdy zainstalowany jest nextpdf/pro.
Instalacja
Dział zatytułowany „Instalacja”composer require nextpdf/pro:^3Przegląd koncepcyjny
Dział zatytułowany „Przegląd koncepcyjny”Czcionki podzbioru w pliku PDF osadzają tylko te glify, których używa dokument. Zgodnie z konwencją ich nazwa /BaseFont niesie sześcioliterowy znacznik wielkimi literami, po którym następuje +, na przykład ABCDEF+Arial. NextPDF Pro:
- Wykrywa podzbiory.
FontDesubsetterskanuje surowe dane PDF pod kątem wpisów/BaseFont, rozpoznaje wzorzec prefiksu podzbioru i raportuje każdy wpis jako obiekt wartościSubsetInfoz oryginalną nazwą rodziny, liczbą glifów podzbioru, pełną liczbą glifów oraz kodowaniem. - Planuje de-subsetting.
DesubsetPlanzbiera czcionki podzbioru wyznaczone do zastąpienia pełnymi programami czcionek i raportuje szacowany wzrost rozmiaru w bajtach, dzięki czemu możesz zdecydować przed działaniem, czy de-subsetting jest wart kosztu rozmiaru pliku.
Font Tools to warstwa analizy i planowania. Opisuje, co jest obecne i ile kosztowałby de-subsetting; sama nie przepisuje programu czcionki.
Dlaczego działa w ten sposób
Dział zatytułowany „Dlaczego działa w ten sposób”Przepisanie osadzonego programu czcionki to trudna i ryzykowna część. Kontury glifów, hinting oraz tabele cmap muszą pozostać spójne, a jeden błąd uszkadza renderowanie. Dlatego NextPDF Pro oddziela tanią i bezpieczną pracę — inwentaryzację i prognozę kosztów — od tego kosztownego przepisywania. Skaner odczytuje wyłącznie bajty; nigdy nie parsuje ani nie wykonuje programu czcionki, więc pozostaje deterministyczny i wolny od efektów ubocznych. Liczby glifów i różnica rozmiaru są celowo oznaczone jako heurystyki, dzięki czemu ocena wydajności pozostaje uczciwa, zamiast ufać liczbie, której moduł nie potrafi zmierzyć. To pozwala rozważyć, czy de-subsetting jest wart kosztu, zanim pozyskasz pełne programy czcionek.
Kontekst projektowy: Czcionki: trudna część.
Powierzchnia API
Dział zatytułowany „Powierzchnia API”| Klasa | Odpowiedzialność |
|---|---|
FontDesubsetter | Skanuj dane PDF i raportuj wpisy czcionek podzbioru. |
SubsetInfo | Niezmienialny opis jednego wykrytego podzbioru. |
DesubsetPlan | Wyznaczone podzbiory plus szacowany wzrost rozmiaru. |
Przykład kodu — Szybki start
Dział zatytułowany „Przykład kodu — Szybki start”use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Przykład kodu — Produkcja
Dział zatytułowany „Przykład kodu — Produkcja”use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Przypadki brzegowe i pułapki
Dział zatytułowany „Przypadki brzegowe i pułapki”- Skaner raportuje
/BaseFontbez sześcioliterowego prefiksu jako wpis niebędący podzbiorem, zamiast go pomijać. - Szacowany wzrost rozmiaru jest heurystyką opartą na średniej liczbie bajtów na glif, a nie wartością zmierzoną.
- Wykrywanie działa na reprezentacji bajtowej wpisów
/BaseFont; zaszyfrowane lub silnie skompresowane strumienie obiektów mogą najpierw wymagać dekodowania.
Wydajność
Dział zatytułowany „Wydajność”Skanowanie podzbiorów jest liniowe względem długości bajtów PDF. Planowanie jest liniowe względem liczby wykrytych podzbiorów.
Uwagi dotyczące bezpieczeństwa
Dział zatytułowany „Uwagi dotyczące bezpieczeństwa”Font Tools odczytuje wyłącznie metadane strukturalne. Nie wykonuje programów czcionek ani nie rozstrzyga zewnętrznych odniesień do czcionek.
Konformancja
Dział zatytułowany „Konformancja”| Zachowanie | Odniesienie | Status |
|---|---|---|
| Konwencja nazewnicza czcionek podzbioru | ISO 32000-2 §9.9.2 | Aligned (paraphrased) |
Kontrakt zachowania
Dział zatytułowany „Kontrakt zachowania”FontDesubsetter::analyzeSubsets()skanuje surowe dane PDF pod kątem wpisów/BaseFont, rozpoznaje prefiks podzbioru w postaci sześciu wielkich liter plus+i zwraca każdy jako niezmienialnySubsetInfoz oryginalną nazwą rodziny, liczbą glifów podzbioru, pełną liczbą glifów oraz kodowaniem./BaseFontbez prefiksu podzbioru jest raportowany jako wpis niebędący podzbiorem, zamiast być pominiętym.DesubsetPlanzbiera podzbiory wyznaczone do zastąpienia i raportuje szacowany wzrost rozmiaru w bajtach na podstawie średniej liczby bajtów na glif — heurystyka, a nie wartość zmierzona.- To warstwa analizy i planowania. Raportuje, co jest obecne i ile kosztowałby de-subsetting; nie przepisuje programu czcionki, nie wykonuje programów czcionek ani nie rozstrzyga zewnętrznych odniesień do czcionek.
Nota o granicy Enterprise
Dział zatytułowany „Nota o granicy Enterprise”Enterprise nie zmienia zachowania Font Tools. Enterprise dodaje funkcje wyższego poziomu udokumentowane osobno; nie są one wymagane do wykrywania podzbiorów ani planowania de-subsettingu.
Rozwiązanie awaryjne / alternatywa w Core
Dział zatytułowany „Rozwiązanie awaryjne / alternatywa w Core”Otwartoźródłowy potok czcionek NextPDF Core obsługuje osadzanie czcionek bazowych. Rozliczanie podzbiorów oraz planowanie de-subsettingu to dodatki Pro. Zobacz /modules/font/.
Granica publikacji
Dział zatytułowany „Granica publikacji”Ta strona dokumentuje wyłącznie zachowanie obserwowalne zewnętrznie oraz obsługiwaną publiczną powierzchnię API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.
Zobacz też
Dział zatytułowany „Zobacz też”- Font Tools — pełna dokumentacja referencyjna — kontrakt API, zachowanie i tryby awarii.
- Optimizer — optymalizacja rozmiaru pliku.
- Moduł czcionek Core — otwartoźródłowa obsługa czcionek.