Przejdź do głównej zawartości
getnextpdf.com

Pro edycja

Narzędzia do czcionek

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.

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.

Okno terminala
composer require nextpdf/pro:^3

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. FontDesubsetter skanuje surowe dane PDF pod kątem wpisów /BaseFont, rozpoznaje wzorzec prefiksu podzbioru i raportuje każdy wpis jako obiekt wartości SubsetInfo z oryginalną nazwą rodziny, liczbą glifów podzbioru, pełną liczbą glifów oraz kodowaniem.
  • Planuje de-subsetting. DesubsetPlan zbiera 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.

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ęść.

KlasaOdpowiedzialność
FontDesubsetterSkanuj dane PDF i raportuj wpisy czcionek podzbioru.
SubsetInfoNiezmienialny opis jednego wykrytego podzbioru.
DesubsetPlanWyznaczone podzbiory plus szacowany wzrost rozmiaru.
use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);
foreach ($subsets as $info) {
echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";
}
use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();
$subsets = $desubsetter->analyzeSubsets($pdfBytes);
$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);
  • Skaner raportuje /BaseFont bez 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.

Skanowanie podzbiorów jest liniowe względem długości bajtów PDF. Planowanie jest liniowe względem liczby wykrytych podzbiorów.

Font Tools odczytuje wyłącznie metadane strukturalne. Nie wykonuje programów czcionek ani nie rozstrzyga zewnętrznych odniesień do czcionek.

ZachowanieOdniesienieStatus
Konwencja nazewnicza czcionek podzbioruISO 32000-2 §9.9.2Aligned (paraphrased)
  • 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 niezmienialny SubsetInfo z oryginalną nazwą rodziny, liczbą glifów podzbioru, pełną liczbą glifów oraz kodowaniem.
  • /BaseFont bez prefiksu podzbioru jest raportowany jako wpis niebędący podzbiorem, zamiast być pominiętym.
  • DesubsetPlan zbiera 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.

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.

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/.

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.