Tisk jen první a poslední stránky z pdf souborů v adresáři

Odkazy na zajímavé články ze světa Linuxu.

Tisk jen první a poslední stránky z pdf souborů v adresáři

Příspěvekod xsouku04 » čtv 26. kvě 2016 20:55:04

do souboru .bashrc ve svém domovském adresáři přidám následující řádky.

Kód: Vybrat vše
function tiskpdfPrvniAposledni(){
for file in $@
do
STRANEK=`pdfinfo $file|grep Pages|sed 's/[^0-9]*//'`
pdftk A=$file cat A1 A$STRANEK output - |pdftops -paper A4 - -|lpr -o media=A4;
done
}


Pro vytištění první a poslední stránky všech PDF souborů v adresáři, do konzole poté jen napíši.

Kód: Vybrat vše
tiskpdfPrvniAposledni  *.pdf


I u bash funkcí funguje doplňování klávesou tab. Tedy vlastně stačí napsat třeba tiskp a zmáčknout tab.

Samozřejmě místo *.pdf můžete napsat jiný "filtr" jako třeba 2015-11*.pdf kde tisknout se budou jen soubory z listopadu 2015.

V našem případě jsou PDF soubory až šedesátistránkové dokumenty, podstatné údaje pro účetní jsou ale vždy jen na první a poslední stránce. Díky oboustranné tiskárně se tak každý dokument vejde jen na jeden list papíru, ostatní lze archivovat elektronicky. A účetní se stále lépe pracuje s papírovými dokumenty, už třeba jen proto, že je může snadno přendávat z hromádky na hromádku (po zpracování), jak je zvyklá.
Není moc pravděpodobné, že by někdo potřeboval úplně to stejné, i tak to ale dobře demonstruje možnosti pomocných bashovských funkcí, které může být dobré si udělat na často opakující se operace se soubory jako tisknutí, skenování, zálohování a podobně. Samotná těla těchto funkcí jsou obvykle tak krátká, že dělat pro ně samostatný script je zbytečné. Příspěvek také píši tak trochu jako veřejnou poznámku sám pro sebe, kdybych to ještě někdy potřeboval. Dobrý kontrast je také v tom, že obvykle typický uživatel Windows by se při dělání podobných kancelářských operací mohl často zbytečně uklikat k smrti a nadělat přitom spousty chyb ...
Uživatelský avatar
xsouku04
Administrátor
 
Příspěvky: 6384
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno

Re: Tisk jen první a poslední stránky z pdf souborů v adresá

Příspěvekod MaT » pon 30. kvě 2016 23:07:39

No pdftk používám k manipulaci s PDFky docela často - a mám na to právě napsané nějaké skripty na často používané operace. Asi by bylo dobré také zdůraznit, že v defaultu to většinou instalované není, je potřeba si repozitářů konkrétní distribuce nainstalovat patřičný balíček (většinou se to bude jmenovat pdftk).

Nástroj pdfinfo jsem sice už někde na něco použil také, ale zrovna v této úloze je podle mně zbytečný. Nemusím vědět celkový počet stránek, pdftk má i instrukci pro poslední stránku. Takže příkaz, který z jednoho pdf souboru vezme jen 1. a poslední stranu a uloží třeba do vystup.pdf vypadá nějak takto:

Kód: Vybrat vše
pdftk vstupni_vicestrankovy_soubor.pdf cat 1 end output vystup.pdf


Hlavně by mě asi nebavilo to z toho ještě vykosťovat pomocí sedu. Ten moc často nepoužívám, tak se vždycky syntaxi toho, co potřebuji, musím učit znovu. Spíš bych si na to asi napsal skript v Pythonu - ten má knihovnu pyPdf a ta umí v zásadě to samé, jako pdftk a pdfinfo...
MaT
 
Příspěvky: 352
Registrován: pát 29. bře 2013 15:35:14

Re: Tisk jen první a poslední stránky z pdf souborů v adresá

Příspěvekod MaT » úte 31. kvě 2016 6:21:11

Když tak o tom přemýšlím, to pdf4ps je tam možná také zbytečné, alespoň mně tedy v poslední době myslím lpr sežere klidně rovnou i PDFka (ono je to stejně jen nějak obalený PostScript). CUPS (resp. lpr) má myslím něco jako filtry na vstupu a ty si prostě zrovna s formátem PDF poradí.
MaT
 
Příspěvky: 352
Registrován: pát 29. bře 2013 15:35:14


Zpět na Zajímavosti ze světa Linuxu

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník