Terminal

Darmowa kompresja plików PDF na MacOS

Format PDF, tak jak złącze USB, zrewolucjonizował pracę na każdym szczeblu infrastruktury IT.

O ile pliki PDF są dobre do przechowywania dokumentów, szczególnie skanowanych, o tyle problem narasta, gdy zaczynają one zajmować coraz to więcej miejsca.

Jeżeli posiadamy dobry skaner oraz oprogramowanie, które wygeneruje plik PDF w rozdzielczości 600dpi zajmujący 200-300kb, nie mamy się co martwić. Niestety, nie wszystkie sprzęty i oprogramowanie poprawnie „kompresuje” pliki PDF z zachowaniem koniecznych detali, umożliwiających późniejszy wydruk.

Jako, że na codzień skanuję dokumenty używając Samsung SCX-5835NX w rozdzielczości 300dpi z poziomu urządzenia, jedna kartka A4 może zajmować nawet 1MB.

W poszukiwaniu dobrego oprogramowania do kompresji, przejrzałem uch całe multum, od darmowych do płatnych. Niestety, żadne nie spełniło moich oczekiwań i postanowiłem spróbować innego podejścia do kompresji plików.

Terminal i Ghostscript

Po pierwsze – terminal

Wiem, że nie jest to najwygodniejsza metoda, gdyż każdy wolał bym metodę przeciągnij i upuść, jednakże, za tzw. GUI (Graphic User Interface) trzeba zapłacić lub jak nie jest dostępne, należy zrobić samemu, a do tego celu należy mieć nieco zdolności programistycznych.

Po drugie – Ghostscript

Ghostscript jest potężnym narzędziem do renderowania plików – w tym kompresji. Więcej o samym Ghostscript możecie poczytać tutaj.

Jako, że pakiet Ghostscript nie jest domyślnie dostępny na MacOS (jak i inne systemy), należy go doinstalować. O ile osoby obcujące z linuksem nie widziały by tutaj problemu, o tyle MacOS idąc w kierunku postawowego użytkownika, usunął zaawansowane opcje, które mogą doprowadzić do dużego zamętu w systemie.

Tutaj przychodzi z pomocą Homebrew lub MacPorts. Jako, że homebrew wybrałem jako pierwszy i przypadł mi do gustu, drugiej opcji już nie próbowałem.

Homebrew

A więc „nawarzmy sobie piwa”.

Instalacja homebrew jest dziecinnie prosta. Przechodzimy na stronę główną i wykonujemy jedną opcję w terminalu.

Następnie, aby zainstalować jakiś pakiet, wydajemy komendę:

brew install {nazwa pakietu}

Zupełnie jak apt-get w linuksie. Bułka z masłem.

No to jedziemy z Ghostscript:

brew install ghostscript

Kompresja plików PDF

Mając zainstalowany Ghostscript w systemie, należy dodać do systemu odpowiednią opcję, którą będziemy kompresować nasze pliki.

Jako, że Ghostscript posiada multum opcji do wyboru, ja skupiłem się na następujących rzeczach:

1) Plik skompresowany posiada taką samą nazwę jak plik przed kompresją, z dodanym elementem „+compressed.pdf”. Dzięki temu unikam konieczności wybrania pliku wejściowego i deklarowania pliku wyjściowego. Im prostsza komenda, tym lepiej, szybciej i bez problemów.

2) Moje pliki PDF służą do archiwizacji papierowych wersji dokumentów. W tym calu wybrałem format PDF służący do archiwizacji – PDF/A w wersji 3, zgodnie ze standardem ISO 19005-3 (bazujący na PDF 1.7 ISO 32000-1:2008).

3) W zależności od stopnia kompresji, otrzymamy mniejszy, lub większy plik który różni się jakością. Dla moich potrzeb wybrałem opcję kompresji printer pozwalającą na późniejszy wydruk pliku bez większej utraty jakości i detali. Dostępne są również opcje screen (do wyświetlania PDF na ekranie monitora), ebook (dla czytników), oraz najmniej skompresowana wersja prepress (służąca głównie do druków profesjonalnych). Oczywiście, możecie wybrać opcję pasującą wam najlepiej.

Kod kształtuje się następująco:

# Komenda: cpdf [plik wejsciowy]
cpdf() {
gs -sDEVICE=pdfwrite -dPDFA=3 -dNOPAUSE -dQUIET -dBATCH -dPDFSETTINGS=/${3:-"printer"} -sOutputFile="$1"+"compressed.pdf" "$1"
}

Powyższą komendę należy dodać do naszego pliku .bash_profile (z kropką z przodu) znajdującego się w naszym katalogu domowym

nano .bash_profile

Aby komenda cpdf była widziana w systemie po dodaniu do powyższego pliku, należy odświeżyć plik w systemie następującą komendą

. .bash_profile

( kropka, spacja, .bash_profile )

Następnie, aby skompresować plik, wydajemy komendę:

cpdf "nasz plik.pdf"

Pamiętając o symbolu ( ) przed i na końcu nazwy pliku. będąc w katalogu, w którym znajduje się nasz plik.

Przykład:

cd ~/Desktop/
cpdf "nasz plik.pdf"

I tak otrzymujemy nasz plik.pdf+compressed.pdf, który zajmuje znacznie mniej miejsca.

Do zrobienia:

Oczywiście, można by było usunąć dodatkowy przedrostek .pdf z nazwy pliku, jak również dodać skrypt do Automator‚a, aby pozbyć się terminala i wykonać opcję z poziomy prawego przyciska myszy, oraz zrobić hurtową kompresję. To moje zadanie na później. Puki co, wszystko działa i spełnia moje oczekiwania.

Pozdrawiam.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *