2009-05-04 17 views
6

Mam wejściowy plik PDF (zwykle, ale nie zawsze generowany przez pdfTeX), który chcę przekonwertować na wyjściowy plik PDF, który jest wizualnie równoważny (bez względu na rozdzielczość), ma te same metadane (informacje tekstowe Unicode, hiperłącza, kontury itp.), ale rozmiar pliku jest jak najmniejszy.Jak zoptymalizować rozmiar pliku PDF?

wiem o następujących metod:

  • java -cp Multivalent.jar tool.pdf.Compress input.pdf (od http://multivalent.sourceforge.net/). Ponownie kompresuje wszystkie strumienie, usuwa nieużywane obiekty, ujednolica równoważne obiekty, kompresuje białe znaki, usuwa wartości domyślne, kompresuje tabelę odsyłaczy.
  • Ponowne kompresowanie odpowiednich obrazów za pomocą jbig2 i PNGOUT.
  • Ponowne kodowanie czcionek Type1 jako czcionek CFF.
  • Ujednolicenie równoważnych obrazów.
  • Ujednolicenie podzbiorów tej samej czcionki do większego podzbioru.
  • Usuń wypełniane formularze.
  • Podczas destylacji lub innej konwersji (np. gs -sDEVICE=pdfwrite) upewnij się, że nie pogarsza to jakości obrazu i nie zwiększa (!) Rozmiarów obrazu.

wiem o następujących technik, lecz nie mają one zastosowania w moim przypadku, ponieważ już mam PDF:

  • stosowanie mniejszych i/lub mniej czcionek.
  • Używaj obrazów wektorowych zamiast obrazów bitmapowych.

Czy masz inne pomysły na optymalizację plików PDF?

+2

Obecny multiwalent: http://downloads.sourceforge.net/project/multivalent/multivalent/Release20091027/Multivalent20091027.jar brakuje teraz klasy tool.pdf.Compress. Jest to opisane tutaj: http://sourceforge.net/p/multivalent/discussion/252478/thread/e7850c31/?limit=50#a96d. Czy znasz jakieś dobre narzędzie do wymiany? –

+0

Starsze wersje Multivalent istnieją w Arch Linux: https://aur.archlinux.org/packages/multivalent-pdf-tools/ –

Odpowiedz

10

Optymalizacja plików PDF

Unikaj grillowana Graphics

Dla grafiki, które muszą być umieszczone jako bitmapy, przygotować je ściśliwości maksymalne i minimalne wymiary. Użyj najlepszej jakości obrazów, które możesz uzyskać w rozdzielczości wyjściowej pliku PDF. Wstawianie skompresowanych plików JPEG do plików PDF i ich destylacja może rekompresować pliki JPEG, które mogą tworzyć zauważalne artefakty. Używaj czarno-białych obrazów i tekstu zamiast obrazów kolorowych, aby umożliwić korzystanie z nowszego standardu JBIG2, który wyróżnia się w monochromatycznej kompresji. Pamiętaj, aby wyłączyć miniatury podczas zapisywania plików PDF w Internecie. Użyj grafiki wektorowej

W miarę możliwości używaj grafiki wektorowej do obrazów, które normalnie byłyby tworzone w pliki GIF. Obrazy wektorowe skalują się idealnie, wyglądają wspaniale, a ich formuły matematyczne zwykle zajmują mniej miejsca niż grafiki bitmapowe, które opisują każdy piksel (chociaż są przypadki, w których grafika bitmapowa jest w rzeczywistości mniejsza niż grafika wektorowa). Można również kompresować dane obrazu wektorowego za pomocą kompresji ZIP, która jest wbudowana w format PDF. Acrobat Reader w wersji 5 i 6 obsługuje również standard SVG. Minimalizuj czcionki

Sposób korzystania z czcionek, zwłaszcza w mniejszych plikach PDF, może mieć znaczny wpływ na rozmiar pliku. Zminimalizuj liczbę czcionek używanych w dokumentach, aby zminimalizować ich wpływ na rozmiar pliku. Każda dodatkowa w pełni osadzona czcionka może z łatwością pobrać rozmiar 40 KB, dlatego większość autorów tworzy czcionki "subsetted", które zawierają tylko faktycznie używane glify. Spłaszczanie formularzy tłuszczowych

Formularze Acrobat mogą zajmować dużo miejsca w plikach PDF. Nowość w programie Acrobat 8 ​​Pro umożliwia spłaszczanie pól formularza w oknie dialogowym Zaawansowane -> Optymalizator PDF -> Odrzuć obiekty. Spłaszczanie formularzy sprawia, że ​​pola formularzy stają się bezużyteczne, a dane formularzy są scalane ze stroną. Możesz także użyć funkcji PDF Enhancer z Apago, aby zredukować liczbę formularzy o 50%, usuwając informacje obecne w pliku, ale nigdy nie używane. Możesz także połączyć refrakcyjny plik PDF ze starymi stronami formularza, aby utworzyć hybrydowy plik PDF w programie Acrobat (zobacz sekcję "Odsyłacz PDF" poniżej).

patrz article

+0

+1 głos. Dziękuję za link i fragment. Chociaż nie pomogło mi to, aby moje pliki PDF były jeszcze mniejsze (wszystkie wymienione techniki są w użyciu lub nie mają zastosowania w moim przypadku), daje to dobry wgląd. – pts

4

Z opisu PDF wersji 1.5 znajdują się dwa nowe sposoby kompresji, strumieni przedmiot i poprzecznych strumieni odniesienia.

Wspomniano, że narzędzie kompresujące Multivalent.jar kompresuje tabelę odniesień. Zwykle oznacza to, że tabela odniesień jest konwertowana na strumień, a następnie kompresowana.

Format tego strumienia referencyjnego nie jest poprawiony. Możesz zmienić rozmiar bitów trzech "kolumn" danych. Możliwe jest również wstępne przetworzenie danych strumienia za pomocą funkcji predykcyjnej, która poprawi poziom kompresji danych. Jeśli zajrzysz do pliku PDF za pomocą edytora tekstu, możesz znaleźć wpis w słowniku słownika odsyłacza, aby sprawdzić, czy narzędzie, z którego korzystasz, korzysta z tej funkcji.

Używanie predyktora kompresji może być przydatne również w przypadku obrazów.

Drugim typem kompresji jest użycie strumieni obiektów.

Często w pliku PDF znajduje się wiele podobnych obiektów. Można je teraz łączyć w jeden obiekt, a następnie kompresować. Dokumentacja narzędzia Multivalent Compress wspomina, że ​​strumienie obiektów są używane, ale nie ma wielu szczegółów dotyczących faktycznego wyboru, które obiekty mają zostać zgrupowane. Kompresja będzie lepsza, jeśli pogrupujesz podobne obiekty w strumień obiektów.