Portál AbcLinuxu, 5. května 2024 04:59

Oboustranný tisk v Linuxu

6. 2. 2004 | Jan Martínek
Články - Oboustranný tisk v Linuxu  

Tisknout nějaký delší dokument pouze na jednu stranu listu je plýtvání papírem a bohužel jen málokomu stojí za námahu se zabývat oboustranným tiskem.

V některých situacích je dokonce, bůh ví proč, jednostranný tisk přímo vyžadován (diplomky na některých školách). Nejvíce papírů a lesů se samozřejmě ušetří tím, zůstane-li vše v elektronické podobě, ale to je čistá utopie.

Po tomto kontroverzním úvodu se pokusím uvést návod, jak tisknout na obě strany papíru.

Předpokládejme, že není k dispozici tzv. duplexní tiskárna, která je schopná potisknout obě strany papíru bez zásahu uživatele. Takže řeč bude o obyčejné tiskárně, do které je nutno papír potištěný z jedné strany znovu vložit tak, aby se potiskl i ze strany druhé. Vložíte-li potištěný papír znovu do tiskárny zcela nahodile, statistika praví, že to v 75% případů zkazíte. Zkušenost ukazuje, že je to obvykle ještě horší. A to mluvím o situaci, kdy dokument má jen jednu stranu. Je-li dokument delší a je třeba mít na paměti sudé a liché stránky, jejich pořadí a vzájemné lícování, je téměř nemožné to napoprvé zvládnout bez chomáče vyrvaných vlasů a plné krabice s nápisem zkažené papíry.

Existují různé druhy tiskáren, ale dvě vlastnosti, ze kterých budu vycházet, by měly mít všechny tiskárny.

Běžné vlastnosti tiskáren

Nepovažuji se za znalce tiskáren, ale všechny tiskárny, se kterými jsem se dosud setkal, tyto vlastnosti splňovaly. Jsou to vlastnosti celkem pochopitelné a lze předpokládat, že se takto chová drtivá většina tiskáren.

Sudé zvlášť, liché zvlášť

Je zřejmé, že na každém listu papíru bude z jedné strany natištěna lichá strana a z druhé sudá. Počítáme-li strany od 1, bude pořadí stran 1-2, 3-4, 5-6 atd.

Tisk je nutno provést dvouprůchodově - zvlášť sudé a zvlášť liché strany. Vzhledem k tomu, že liché strany jsou na opačné straně papíru než sudé, je nutné celý balík papírů potištěných z jedné strany otočit a znovu vložit do tiskárny. Otočením se ovšem obrátí pořadí stránek, takže se papíry kromě otočení musí ještě přeskládat nebo buď liché nebo sudé strany tisknout v opačném pořadí. Pohodlnější je samozřejmě tisk v opačném pořadí.

Sudé strany je nutno tisknout v opačném pořadí

Po vytištění by bylo dobré, aby s dokumentem nebylo potřeba nic dalšího dělat (přeskládávat), takže aby první strana, kterou uvidíme, byla strana s číslem 1. Přihlédneme-li k první vlastnosti běžné tiskárny (viz výše), je zřejmé, že liché strany tudíž necháme v původním pořadí (1, 3, 5, 7, ...). Z toho vyplývá, že musíme obrátit pořadí stránek sudých (..., 8, 6, 4, 2).

Je lepší tisknout nejprve sudé stránky

V případě, že má dokument sudý počet stran, je situace jednoduchá, protože je jedno, jestli vytiskneme nejdříve sudé stránky a potom liché. Ale jestliže má dokument lichý počet stran, bude počet lichých stránek o jednu vyšší než počet stran sudých. Jako příklad můžeme uvažovat např. pět stran číslovaných 1 - 5. Poslední list bude potištěn pouze z jedné strany a tato poslední strana bude lichá. Kdybychom vytiskli nejprve liché strany, vyjedou z tiskárny tři listy se stranami 1, 3, 5. Při pokusu o tisk sudých stran (již víme že v obráceném pořadí) bychom získali listy potištěné stranami 2-3, 4-5, což zaprvé nechceme (chceme 1-2, 3-4, 5) a zadruhé by list s první stranou zůstal v tiskárně a ani by nevyjel. S tím listem v tiskárně to není žádný problém, trochu horší je, že po první stránce následuje prázdná stránka. To pořád ještě nemusí být kritické, ale smůla je, když se u dokumentu počítá s okrajem pro svázání. Takto pokažený výtisk by svázat nešlo, protože by okraje byly na každém listu jinak. Často totiž bývá u lichých stránek širší levý okraj a u sudých stránek širší pravý okraj právě kvůli vazbě.

Jsou možná tři řešení:

Listy otáčet pouze kolem příčné osy

Když z tiskárny vyjedou sudé stránky a chystáme se na tisk stránek lichých, jak vlastně balík potištěných papírů vložit zpátky do tiskárny? V souladu s druhou vlastností obvyklých tiskáren platí, že stránka se tiskne odshora dolů, takže potištěné papíry je třeba natočit tak, aby šly do tiskárny "hlavou napřed". Pozor, situace není tak zřejmá v případě, když je dokument vysázený "na šířku" (landscape), protože se těžko určuje, kde je nahoře a kde dole. V takovém případě je nutno sledovat např. na kterém okraji jsou čísla stran a toto dodržet i u druhého průchodu. Jednodušší ale je držet se pravidla, že vytištěný balík papírů otáčíme vždy pouze kolem příčné osy, nikdy ne kolem podélné.

Při druhém průchodu je pořadí stránek vzestupné

Zbývá si ještě ujasnit poslední stupeň volnosti. Při druhém průchodu se tisknou strany liché, a to v normálním (tj. vzestupném) pořadí. Balík listů potištěných sudými stranami z prvního průchodu se musí otočit tak, aby byly strany seřazeny vzestupně, tj. 2, 4, 6, ..., takže jako první musí jít do tiskárny list se stranou 2.

Praktická realizace

Tisknout sudé strany v opačném pořadí a liché strany v původním pořadí umí většina programů, od kterých se to očekává, např. OpenOffice.org či Acrobat Reader. Z příkazové řádky lze tímto způsobem tisknout také snadno, máme-li jako vstupní formát pro tisk postscript nebo PDF. Z PDF lze totiž vyrobit postscript například takto:

pdftops -paper A4 neco.pdf neco.ps

Pro oboustranný tisk existuje příkaz psmandup, který ze vstupního postscriptového dokumentu vytvoří jiný, určený pro přímý tisk. Pořadí stránek se změní na (1,3,5,7,9,...,10,8,6,4,2). Liché stránky jsou tedy jako první, pak následují sudé v obráceném pořadí. Toto je zdánlivě v rozporu s předchozím doporučením, že sudé stránky je vhodné tisknout jako první. V tomto případě to ale nevadí, protože celkový počet stran výsledného souboru je vždy sudý. psmandup se o to postará tím, že přidává jednu prázdnou lichou stránku v případě, že počet stran původního dokumentu byl lichý. Je tudíž jedno, jestli se tisknou nejprve liché nebo sudé.

psmandup dále využívá faktu, že některé tiskárny si umí vzít papír buď z hlavního zásobníku nebo z ručního podavače. Uprostřed postscriptového dokumentu, tedy tam, kde končí liché strany a začínají sudé, je řídící sekvence pro tiskárnu, aby si brala papír z ručního podavače. Je dobré být v kritickém okamžiku poblíž tiskárny, protože je potřeba stihnout vložit potištěné papíry do zásobníku. Použití je jednoduché:

psmandup tisk.ps | lpr

Řešení pomocí psmandup má své výhody i nevýhody. Máte-li síťovou tiskárnu, jistě oceníte, že v průběhu tisku vám nikdo nemůže potisknout druhou stranu papírů nějakými nesmysly (kdyby byl dost rychlý). psmandup totiž vytvoří jeden soubor a tudíž jen jednu tiskovou úlohu, takže do fronty vám nikdo jiný nezasáhne. Nevýhodou je, že manuální zásobník mívá jen omezenou kapacitu ve srovnání s hlavním zásobníkem a navíc - některé tiskárny mají pouze jeden zásobník. Mně osobně se moc nelíbí, že se nejprve tisknou liché stránky a pak sudé, což je v mírném rozporu s výše uvedenými zásadami. Jako berlička se používá ono přidávání prázdné stránky navíc, aby počet stran byl vždy sudý.

Další možností je použití programu psselect, který dokáže z postscriptového dokumentu vybrat jen určité stránky a uložit je do zváštního souboru, případně poslat na standardní výstup. Přesměrováním do příkazu lpr se dokument rovnou vytiskne.

Sudé stránky v opačném pořadí vytiskneme takto:

psselect -e -r tisk.ps | lpr

liché stránky v původním pořadí takto:

psselect -o tisk.ps | lpr

Jak tisknout po menších blocích

Některé tiskárny jsou zrádné a v nejnevhodnější chvíli sežerou papír, pomuchlají jej a posypou nezapečeným tonerem, takže výsledek jsou černé ruce a chaos v číslování stran. Máte-li podezření, že vás tiskárna může takto překvapit, je lepší tisknout dokument po částech. Opět je možné použít příkaz psselect:

Bylo by samozřejmě možné napsat

psselect -e -r -p1-5 tisk.ps | lpr

což vytiskne stránky 4 a 2 (pozor, za parametrem -p nesmí být mezera). Asi je zřejmé, proč je číslování právě takové, ale než se tím zabývat, bude lepší si vytvořit dva pomocné postscriptové soubory - s lichými stranami a se sudými stranami v opačném pořadí,

psselect -e -r tisk.ps sude-opacne.ps
psselect -o tisk.ps liche.psy

a tyto soubory pak posílat na tiskárnu po částech. Pak sice přestane souhlasit číslování stran (např. 1-5 u lichých ve skutečnosti znamená 1,3,5,7,9) ale má to i své výhody. Například příkazy

psselect 1-5 sude-opacne.ps | lpr
psselect 6-10 sude-opacne.ps | lpr
psselect 1-5 liche.ps | lpr
psselect 6-10 liche.ps | lpr

Vytisknou dvacetistránkový dokument po blocích o pěti stránkách. Parametr -p je v tomto kontextu nepovinný.

Pro úplnost dodávám, že

psselect 1- sude-opacne.ps | lpr

vytiskne celý postscriptový soubor, tj. všechny stránky od začátku až do konce. Použití příkazu psselect je v tomto případě zbytečné, uvádím jej pouze jako ukázku zadávání rozsahů stran.

Doporučení na závěr - psselect + ghostview

Způsobů tisku je mnoho, ale pro běžnou praxi bych doporučil kombinaci příkazu psselect a klikacího ghostview (spouští se příkazem gv). Nejprve rozdělte dokument na dva: s lichými a sudými stránkami (sudé v opačném pořadí) podle předchozího návodu a poté oba dokumenty tiskněte pomocí ghostview

gv sude-opacne.ps ; gv liche.ps

kde lze pravým tlačítkem myši pohodlně označit rozsah stran.

Ve volném pokračování tohoto článku se pokusím popsat zmenšování dokumentu tak, aby se jednu stranu papíru vešly dvě stránky dokumentu. Přeji vám co nejméně zkažených papírů a jiných komplikací.

Související články

Tisk v Linuxu pomocí balíku PSUtils
TurboPrint: Tisk pro lenochy
Zajímavosti ze světa Linuxu 3 (Přehled linuxových tiskových systémů)
Příručka OpenOffice
Kancelářský balík Hancom Office
GNU Lilypond

Odkazy a zdroje

psselect - manuálová stránka
psmandup - manuálová stránka
Ghostview

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.