Optymalizacja zasobów i obrazów

HotPDF potrafi zmniejszyć rozmiar załadowanego dokumentu bez zmiany semantyki stanu grafiki stron i bez psucia dziedziczonych zasobów oraz appearance'ów adnotacji

Konsolidacja treści i zasobów

Powtarzane obrazy inline mogą stać się współdzielonymi image XObjects po spełnieniu progów wystąpień i ładunku

Nieużywane nazwy zasobów stron są usuwane ostrożnie po przeskanowaniu treści strony, zagnieżdżonych Form XObjects i strumieni appearance adnotacji

Zgodne strumienie treści stron są dekodowane, łączone z bezpiecznymi granicami tokenów i normalizowane do jednego strumienia Flate

Form XObjects i osadzone fonty są deduplikowane z kanonicznej zdekodowanej treści i rekurencyjnie kanonicznych grafów zasobów, przy czym zgodne prefiksy podzbiorów fontów są normalizowane podczas porównywania

Subsetting załadowanych fontów

SubsetLoadedFonts śledzi kody znaków przez treść strony, zagnieżdżone Form XObjects i strumienie appearance adnotacji, rozwiązuje każdy kod przez kodowanie fontu PDF i mapowanie CID, a potem zachowuje tylko osiągalne programy glifów

Słowniki fontów, mapy CID, szerokości i dane ToUnicode zachowują swoje istniejące identyfikatory, bo subsetting TrueType, CFF i Type 1 zachowuje ID lub nazwy glifów; współdzielone osadzone programy agregują użycie z każdego zgodnego słownika fontów przed jednym przepisaniem

Zależności konturów TrueType composite i COLR v0/v1 są domykane rekurencyjnie, a tablice koloru, bitmap, wariacji i shapingu pozostają nietknięte; programy Type 1 PFB, dzielone binarne i hex PFA zachowują używane CharStrings i zastępują nieużywane wpisy ważnymi programami endchar o równej długości

Operacja pomija cały program fontu, gdy żadnego użytego kodu nie da się zmapować, przyjmuje tylko mniejszego kandydata surowego lub Flate i domyślnie odmawia dokumentów podpisanych, więc wywołujący musi jawnie wyrazić zgodę na unieważnienie podpisów

Polityki obrazów

Rekompresja JPEG wybiera kwalifikujące się przestrzenie kolorów, jakość wyjścia i minimalne oszczędności bajtów

Optymalizacja JPEG 2000 obsługuje profile bezstratne i wizualnie bezstratne, opcjonalne kafle i wszystkie pięć kolejności progresji przez jawny, niewyłączony profil

Rekompresja po koszcie wizualnym ocenia ograniczone próby jakości JPEG lub JPEG 2000 względem zdekodowanego źródła, odrzuca kandydatów poza limitami błędu percepcyjnego lub minimalnych oszczędności i wybiera najniższy ważony wynik błędu wizualnego i kosztu bajtów z deterministycznym rozstrzyganiem remisów

Dane globalne JBIG2 są współdzielone tylko wtedy, gdy dokładne bajty zdekodowanego segmentu globalnego się zgadzają przy jbspExactGlobalsOnly

Downsampling po efektywnym DPI podąża za macierzami strony i zagnieżdżonych Form, dekoduje piksele źródła zarządzane kolorem i ponownie próbuje miękkie maski wraz z ich obrazami właścicielskimi

Przepisywanie koloru obrazów konwertuje obsługiwane wejścia ICCBased, CalGray i CalRGB do skalibrowanego RGB, a nieobsługiwane wejścia skalibrowane pozostają nietknięte zamiast być konwertowane do procesowego RGB

DownsampleLoadedImages zmienia rozmiar obsługiwanych obrazów 8-bit raw, Flate, LZW, ASCII i RunLength Separation lub DeviceN bezpośrednio w przestrzeni składników, zachowując dokładny graf przestrzeni kolorów, transformację tint, barwniki, zakresy /Decode i semantykę overprint

Obrazy spot DCT, JPX, JBIG2 i CCITT pozostają niezmienione, gdy ich kodek nie potrafi wystawić oryginalnych próbek płyt

Użyj przepisania kolorów strony, gdy wymagane wyjście to jednolita procesowa przestrzeń Gray, RGB lub CMYK dla malowań wektorowych, obrazów, wzorów, shadingów, przezroczystości i zasobów ICC

Adaptacyjne strumienie obiektów

Pakowanie strumieni obiektów może ograniczać rozmiar członka, docelowe bajty kontenera i liczbę członków, zachowując lokalność numerów obiektów i wykluczając obiekty dirty, które mogą się znowu zmienić

Włączenie pakowania adaptacyjnego żąda też wymaganej wersji PDF, strumienia xref i pełnego przepisania

Główne API