Właśnie dowiedziałem się, że pliki PDF można kompresować w celu zmniejszenia ich rozmiaru dysku.
- Zastanawiałem się, jak się dowiedzieć, czy plik PDF został już skompresowany?
- Jakich aplikacji / poleceń można używać do kompresji lub dekompresji pliku PDF?
Moje środowisko to Linux Ubuntu 10.10.
Niektóre próby nie dają zadowalających rezultatów:
Oto wyniki próby
pdftk
:$ pdftk 3.pdf output 5.pdf uncompress $ pdftk 3.pdf output 3comp.pdf compress $ ls -l 3.pdf 3comp.pdf 5.pdf -rwxrwx--- 1 root plugdev 8652269 2011-07-30 12:27 3comp.pdf -rwxrwx--- 1 root plugdev 8652319 2011-07-29 22:15 3.pdf -rwxrwx--- 1 root plugdev 16829828 2011-07-30 12:27 5.pdf
Właściwości plików pokazują, że nie wszystkie są zoptymalizowane.
Wyniki konwersji do ps, a następnie z powrotem do pdf:
$ pdf2ps 3.pdf 3.ps $ ps2pdf 3.ps 3c.pdf $ ls -l 3.pdf 3.ps 3c.pdf -rwxrwx--- 1 root plugdev 8808946 2011-07-30 13:14 3c.pdf -rwxrwx--- 1 root plugdev 8652319 2011-07-29 22:15 3.pdf -rwxrwx--- 1 root plugdev 122375966 2011-07-30 13:14 3.ps
file
. Powinien pokazywać, czy plik jest skompresowany czy nie.$file 3.pdf
to3.pdf: PDF document, version 1.4
Odpowiedzi:
w skrócie:
Aby wiedzieć, czy jest już skompresowany:
strings your.pdf | grep /Filter
Aby (od) kompresować plik PDF, użyj QPDF
wyjaśnienie:
Słowo kluczowe „Filtruj” w pliku pdf jest wskaźnikiem zastosowanej metody kompresji. Niektórzy z nich są:
(skopiowane stąd ).
Jednak biorąc pod uwagę złożoną strukturę plików PDF, przez większość czasu część (lub „strumień”) pliku PDF będzie już w jakiś sposób skompresowana (i pojawi się podczas grepping / Filter), podczas gdy inna część nie będzie, więc nie ma odpowiedzi TAK / NIE na pytanie, czy plik PDF jest skompresowany.
Jednym ze sposobów rozwiązania tego problemu byłoby dodanie
-c
opcji do grep, która zwraca liczbę wystąpień, dzięki czemu można stosunkowo łatwo zobaczyć, jak dobrze jest skompresowany. na przykład, jeśli zwraca mniej niż 10, jest to dość nieskompresowane.strings
"large
.pdf" | grep -c /Filter
Inną właściwością związaną z rozmiarem w plikach PDF jest to, czy zostały zoptymalizowane pod kątem szybkiego dostępu, przy czym „zoptymalizowane” pliki PDF mają większy rozmiar, cytat z wikipedii :
Możesz sprawdzić, czy plik PDF jest zoptymalizowany za pomocą
pdfinfo your.pdf
.źródło
qpdf
ipdftk
zrobić mniej więcej to samo w odniesieniu do kompresji, aleqpdf
może również zoptymalizować (plus wiele innych rzeczy).pdftk to narzędzie do wykonywania niektórych operacji na plikach PDF, takich jak kompresja / dekompresja:
źródło
pdfinfo file.pdf
informuje, czy plik PDF jest zoptymalizowany . Nie jestem jednak pewien, czy to oznacza kompresję, czy nie.Znalazłem metodę kompresji w pliku pdf. Otwórz plik PDF za pomocą edytora tekstu. Uruchom CCITT Wyszukaj lub Znajdź - jeśli nie znaleziono, wprowadź JPEG, następnie Flate, następnie JBIG2, następnie LZW, następnie RLE, a następnie ZIP.
Brzmi gorzej niż jest! Bardzo łatwo znaleźć metodę kompresji strumienia danych.
źródło
Wystarczy sprawdzić jego właściwości; powie, czy plik jest skompresowany czy nie.
źródło