PDF je v zásadě statický dokument určený k prohlížení a především k tisku. Někdy se ale hodí do dokumentu zasáhnout. K tomu vám může pomoci některá z řádkových utilit, které si dnes představíme. Co všechno se tedy dá snadno s PDF dělat?
Vytvoření PDF z obrázků
Začneme tím, že si jednoduché PDF vyrobíme. Máme sadu obrázků a chceme z nich udělat jeden dokument. Dejme tomu, že jsme si naskenovali nějakou smlouvu a protistrana ji od nás chce právě v PDF. Pomoc je snadná, poslouží nám k tomu utilita convert
z balíčku ImageMagick.
Ta umí konvertovat mnoho různých formátů, především těch obrázkových. Dobře si ale poradí i s PDF. Základní použití je velmi přímočaré:
$ convert *.jpg vystup.pdf
Utilita convert
má spoustu parametrů, v souvislosti s PDF by vás mohly zajímat -density
pro nastavení DPI, -quality
pro konfiguraci kvality obrázků uvnitř PDF a také -trim
pro odstranění zbytečných okrajů u obrázků.
Výběr některých stránek
Máte velké PDF, ale potřebujete z něj jen několik stránek, které odešlete kolegovi k vytištění. Nebo potřebujete odstranit nepovedený úvod, který později nahradíte vlastními stránkami. V tom vám pomůže utilita pdftk
ze stejnojmenného balíčku.
$ pdftk vstup.pdf cat 1-12 output vystup.pdf
Tento příkaz do výstupu vybere jen prvních dvanáct stránek. Můžete takto ale snadno odebrat třeba jen třináctou stranu, pokud za seznam stránek přidáte 14-end
. Takto lze vybírat libovolné stránky či rozsahy oddělené mezerou a ty se pak objeví ve výstupním souboru.
Sloučení několika dokumentů
Výše uvedeným postupem můžeme rozsekat dokumenty na vybrané listy, ale ty pak budeme chtít spojit. K tomu je určena utilita pdfunite
z balíčku poppler-utils. Použití je velmi jednoduché:
$ pdfunite vstup1.pdf vstup2.pdf vstup3.pdf vystup.pdf
Zašifrování PDF
Utilita pdftk toho umí ještě mnohem více, hodit se může například zašifrování PDF. To má dvě úrovně: vlastnickou a uživatelskou. První po zadání hesla odemyká možnosti tisku, kopírování obsahu, podepisování dokumentu a podobně; druhá je potřeba pro samotné čtení dokumentu. Obě hesla můžeme nastavit zároveň:
$ pdftk vstup.pdf output vystup.pdf owner_pw heslo1 user_pw heslo2
Dešifrování PDF
Užitečnější bude pravděpodobně zpětný proces, tedy dešifrování přijatého PDF. Pokud vlastnické heslo známe, je postup analogický předchozímu příkladu:
$ pdftk vstup.pdf input_pw heslo1 output vystup.pdf
Získáme tak stejný dokument, nebude však už chráněn heslem a otevírat jej budeme standardním způsobem.
Prolomení hesla
Horší situace nastává, pokud heslo neznáme. Také tady nám může pomoci šikovná utilita, tentokrát s názvem pdfcrack
ve stejnojmenném balíčku. Hádání hesel je poměrně časově náročné a samozřejmě záleží na délce a kvalitě hesla.
$ pdfcrack vstup.pdf
Ve výchozím stavu utilita hádá jen uživatelské heslo, pokud chceme zkoušet i to vlastnické, přidáme parametr -o
. Hodí se vědět i o dalších parametrech, které umožňují například nastavit minimální délku zkoušeného hesla ( -n
), dovolují odkázat na soubor se slovníkem ( -w
) nebo umí omezit množinu použitých znaků na ty vybrané ( -c
). Číselné heslo je takto odhaleno během několika sekund.
$ pdfcrack vstup.pdf -c 1234567890 -o PDF version 1.5 Security Handler: Standard V: 2 R: 3 P: -3904 Length: 128 Encrypted Metadata: True FileID: 848ae446f1817fc85f9babbbf1042f78 U: b2f5f1c3f4058e0e6bae6bfc27ba420900000000000000000000000000000000 O: 079852154b9eb958a74f285c758a81fffb7a564759c288fc0c43addafe27e796 found owner-password: '658414' found user-password: '891347'
Více listů na stranu
Nejen k úspornému tisku se hodí možnost připravit si PDF s více listy na jedné straně. Budeme k tomu potřebovat balíček texlive-extra-utils s z něj v tuto chvíli konkrétně utilitu pdfjam
. Řekněme, že máme dvě stránky, které chceme takto spojit a vytisknout na jeden papír.
$ pdfjam vstup1.pdf vstup2.pdf --nup 2x1 --landscape --outfile vystup.pdf
Výroba brožurky
Na školeních a workshopech dávám lidem do ruky vytištěnou brožurku, podle které pak společně děláme praktická cvičení. Brožurka vzniká pomocí XeLaTeXu jako normální PDF ve formátu A4. Já z ní ale vyrábím sešitek ve formátu A5, který vzniká oboustranným vytištěním a přeložením v polovině stránky na šířku.
K tomu je potřeba stránky poskládat správně tak, aby na prvním listu byla poslední a první strana a zezadu pak druhá a předposlední a tak dále. Naštěstí to není potřeba dělat nijak ručně, pomůže utilita pdfbook
z už zmíněného balíčku texlive-extra-utils.
$ pdfbook vstup.pdf
Výstupem je pak soubor vystup-book.pdf
, který obsahuje hotovou poskládanou brožurku, kterou stačí jen správně oboustranně vytisknout a přehnout.
Odstranění okrajů
Součástí už dvakrát zmíněného balíčku texlive-extra-utils je i utilita pdfcrop
, která slouží k odstranění okrajů u již hotových PDF dokumentů. Použití je opět velmi podobné předchozímu příkladu, prostě jí stačí jako parametr předhodit PDF a výstupem je soubor vystup-crop.pdf
, už bez okrajů.
Někdy je naopak potřeba okraje přidat, k čemuž poslouží stejná utilita. Pomocí parametru --margins
můžete nastavit postupně levý, horní, pravý a spodní okraj. Jednotky jsou bp (big point), tedy 1/72 palce.
$ pdfcrop vstup.pdf --margins "20 20 20 20"
Máte další tipy?
Některé zde zmíněné utility jsou mnohem mocnější a často jsou i vzájemně zastupitelné. Cílem článku bylo ukázat nejběžnější úpravy, které se v praxi s PDF mohou hodit. Autor sám je v praxi používá.
Máte další nápady na využití těchto či dalších utilit k úpravám PDF? Podělte se v diskusi.