PurgeUnusedResources
Przetwarzanie dokumentów, Optymalizacja
Opis
Skanuje wybrane warstwy zawartości strony i ich przechodnie zależności zasobów, a następnie usuwa nazwane zasoby, do których nie ma odwołań w odpowiednim zakresie zasobów
Opcje domyślne przechodzą rekurencyjnie do Form XObject, wzorców kafelkowych, glifów Type 3, wyglądów adnotacji i grup miękkich masek, zachowują przestrzenie kolorów wskazywane przez obrazy i inne zasoby, usuwają przestarzałe tablice /ProcSet i puste kategorie zasobów oraz zbierają obiekty pośrednie, które po czyszczeniu stały się nieosiągalne
Składnia
Delphi
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString= '';
Options: Integer= PDF_RESOURCE_PURGE_DEFAULT): Integer; Overload;
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString;
Options: Integer; Out Stats: TPDFlibResourcePurgeStats): Integer; Overload;
Parametry
| PageRange | Zakres stron liczony od 1, używający tej samej składni co pozostałe interfejsy API zakresów stron, albo pusty ciąg dla wszystkich stron |
|---|---|
| Options | Kombinacja bitowa stałych opcji czyszczenia zasobów |
| Stats | Otrzymuje liczniki skanowania, zabezpieczeń, usuwania i osieroconych obiektów |
Opcje
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Skanuje wskazywane Form XObject i respektuje ich własny lub dziedziczony zakres zasobów |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Usuwa przestarzałe tablice /ProcSet |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Usuwa puste słowniki kategorii zasobów |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Pozwala na czyszczenie, gdy strumień zawartości zawiera nieznany operator |
| PDF_RESOURCE_PURGE_DRY_RUN | Raportuje usuwalne nazwane wpisy bez modyfikowania dokumentu |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Zbiera obiekty pośrednie, które po czyszczeniu aktywnym stały się nieosiągalne |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Skanuje zawartość i niezależny zakres zasobów wskazywanych wzorców kafelkowych |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Skanuje każdy strumień CharProc we wskazywanych czcionkach Type 3 przy użyciu zakresu zasobów czcionki |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Skanuje strumienie zwykłego wyglądu, wyglądu po najechaniu, wyglądu po naciśnięciu i nazwanych stanów adnotacji |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Skanuje strumienie grup przezroczystości wskazywane przez słowniki miękkich masek ExtGState |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Sprawdza XObject obrazów, maski jawne, obrazy miękkich masek i obrazy alternatywne pod kątem zależności zagnieżdżonych |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Łączy analizę zależności wzorców, Type 3, wyglądów, miękkich masek i obrazów |
| PDF_RESOURCE_PURGE_DEFAULT | Łączy całą analizę zależności, rekurencję Form, usuwanie ProcSet, usuwanie pustych kategorii i zbieranie pamięci |
Wartości zwracane
| Live cleanup | Liczba usuniętych nazwanych wpisów zasobów |
|---|---|
| Dry run | Liczba nazwanych wpisów zasobów, które można usunąć |
| 0 | Brak usuwalnych nazwanych wpisów, brak wybranych stron albo brak wczytanego dokumentu |
Uwagi
Skanowanie rozpoznaje odwołania Font, XObject, ExtGState, ColorSpace, Pattern, Shading i Properties, w tym niestandardowe przestrzenie kolorów w słownikach obrazów śródliniowych oraz zależności pośrednie przenoszone przez obiekty zasobów
Domknięcie zależności obejmuje przestrzenie kolorów obrazów i cieniowań, bazy Indexed, alternatywy Separation i DeviceN, przestrzenie bazowe Pattern, alternatywy ICCBased, zawartość wzorców kafelkowych, wszystkie CharProc Type 3, stany wyglądów adnotacji, grupy miękkich masek ExtGState, maski obrazów, obrazy miękkich masek i obrazy alternatywne
Nazwy PDF są dopasowywane z rozróżnianiem wielkości liter, a wszystkie warstwy zawartości każdej wybranej strony są łączone przed czyszczeniem
Nieprawidłowe strumienie i nieznane operatory zachowują pełny zakres zasobów, chyba że ustawiono PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN
Współdzielone i dziedziczone słowniki zasobów są kopiowane przed modyfikacją, dzięki czemu czyszczenie pozostaje lokalne dla wybranej strony, Form, wzorca, czcionki Type 3, wyglądu lub grupy miękkiej maski
Powtarzające się strumienie i wpisy zależności ponownie wykorzystują buforowane wyniki analizy, natomiast limity głębokości i śledzenie aktywnych strumieni kończą nieprawidłowe cykle zasobów
Anulowanie jest dostępne za pomocą Abort z procedury obsługi OnProgress
Przykład
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Zobacz również
TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort