Nakonec jsem našel relativně spolehlivý způsob, jak takový monolit rozporcovat na menší kousky, a abych to nezapomněl, tak si to poznamenám.
Budeme potřebovat pdftk, imagemagick a poppler-utils. V Debianu je všechno nachystané v repozitářích.
Nejdřív původní soubor nasekáme na jednotlivé stránky. Následující příkaz vytvoří z každé stránky v původním pdf jeden soubor.
$ pdftk VSTUPNI.PDF burst
Tímto vznikne plus minus autobus milion souborů s názvy pg_0001.pdf
.
Následující krok by měl každý vytvořený soubor vertikálně rozpůlit. K tomu se dá použít třeba programů z balíku poppler-utils
. Abychom se s tím zbytečně nepárali, vezmeme to všechno naráz.
for i in pg_*pdf; do
pdftoppm $i >${i/pdf/ppm}
convert $(i/pdf/ppm} -crop 50%x100% +repage vystup-$i
done
Jakkoli děsivě ta substituce vypadá, dělá jen jednu věc: nahradí příponu pdf
příponou ppm
. Následující příkaz z balíku imagemagick
potom akorát obrázek rozsekne napůl (tady se dá pohrát s konkrétním číslem) a výsledek uloží jako dvoustránkové PDF do souboru vystup-pg_0001.pdf
.
Teď už stačí znovu použít pdftk
a všechno to zase nakombinovat do jednoho souboru.
$ pdftk vystup-* cat output spojeny.pdf
Zjevně není nutné vytvářet pouze jeden monolit, ale jde to rozdělit do souborů třeba po kapitolách. Taky je snadné vyhodit nezajímavé stránky.
Popis výš má zásadní problém: vytvořený soubor má rozměry slona po obědě. Možnou odtučňovací kůrou je třeba ghostscript
.
$ gs -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE \
> -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf spojeny.pdf
Tím se každá stránka přepočítá na plus minus 72 dpi, což je dost pro monitor. Na tisk už to ale stačit nebude. Další možnosti jsou /ebook
, /printer
, /prepress
.