abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 0
    dnes 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 5
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 31
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 2
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (74%)
     (9%)
     (2%)
     (16%)
    Celkem 802 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Tisk v Linuxu pomocí balíku PSUtils

    4. 3. 2004 | Tomáš Pěnička | Návody | 8579×

    Oboustranný tisk, tisk více stran na jeden list, sestavování sešitu. Pokud vám něco chybělo v nedávném článku o oboustranném tisku, najdete to zde.

    V nedávné době vyšel na ABCLinuxu článek s návodem k oboustrannému tisku v Linuxu. Článek nevyčerpal všechny možnosti, které mohou nastat, proto jsem se jej rozhodl doplnit.

    Abstrakt

    Řešíme úlohu, jak v Linuxu co nejpohodlněji tisknout oboustranně na tiskárně, která to sama o sobě neumí. Dále se podíváme na postup, jak tisknout více zmenšených stránek na jeden list papíru a nakonec, jak si vytisknout sešit. Předpokládáme, že materiál k tisku je připraven v postscriptovém souboru. Tento předpoklad není nijak omezující, protože z většiny aplikací se dá vymámit PostScript. Použijeme balík psutils, který je snad ve všech distribucích.

    Balík psutils

    Balík psutils je soubor programů, které umí různé kejkle s postscriptovými soubory. Mimo jiné spojení více souborů do jednoho (psmerge, funguje ve velmi speciálních případech, ještě se mi to nepovedlo), výběr některých stránek (psselect), zmenšení a umístění více stránek na jeden list papíru (psnup) a přeuspořádání stránek pro tisk sešitu (psbook, viz dále).

    Jednotlivé programy z balíku psutils se dají pospojovat rourami. Pokud nezadáte výstupní soubor, tak se výsledek vysype na standardní výstup, pokud navíc nezadáte vstupní soubor, data se berou ze standardního vstupu. Spojením několika programů do kolony se dají dělat velké věci.

    Oboustranný tisk - teorie

    Tady se zaměříme na praktickou stránku věci. Oželíme výklad suché teorie a dáme řešení pro různé situace. Předpokládáme, že tiskárna splňuje následující podmínky:

    1. Ze zásobníku si tiskárna bere horní papír.
    2. Na výstupu z tiskárny padá papír na dříve vytištěné (tj. na vršek hromádky).

    Pokud Vaše tiskárna pracuje jinak, čtěte přesto dále.

    Odpovězte si na následující 2 výroky, které se týkají konstrukce tiskárny.

    1. Tiskne se na tu stranu papíru, která je v zásobníku nahoře. Pokud tiskárna nesplňuje bod a.), znegujte odpověď a všude, kde se v bodech i.) až iv.) mluví o zásobníku papíru, prohoďte strany nahoře a dole.
    2. Papír vyjede z tiskárny vytištěnou stranou nahoře. Pokud tiskárna nesplňuje bod b.), znegujte odpověď.

    Mohou nastat 4 případy odpovědí. Popíšeme postup, jak nakonec dostat oboustranně vytištěné stránky seřazené ve správném (tj. vzestupném) pořadí.

    1. Odpovědi jsou (ano, ano) - toto je nejjednodušší případ. Vytiskneme liché stránky, vytištěné listy vrátíme do zásobníku tiskem dolů a vytiskneme sudé stránky. Pokud bylo lichých stránek více než sudých, poslední z nich zůstane v zásobníku, takže je třeba ji zase vytáhnout nebo ji tam ani nedávat.
    2. Odpovědi jsou (ne, ne) - toto je stále jednoduchý případ. Vytiskneme sudé stránky, vytištěné listy vrátíme do zásobníku tiskem nahoru a vytiskneme liché stránky. Pokud bylo lichých stránek více než sudých, tak si tiskárna vezme ze zásobníku o jeden list víc, než jsme do něj předtím vrátili.

      Obě předchozí varianty jsou jednoduché v tom smyslu, že nevyžadují tisk stránek v obráceném pořadí. V těchto případech si vystačíme například s programem gv.

    3. Odpovědi jsou (ano, ne) - nejprve vytiskneme sudé stránky v obráceném pořadí (vytištěné listy vrátíme do zásobníku tiskem dolů) a potom liché (v normálním pořadí). Pokud je lichých stránek víc, tak si tiskárna vezme ze zásobníku o jeden list víc, než jsme do něj předtím vrátili.
    4. Odpovědi jsou (ne, ano) - nejprve vytiskneme liché stránky v obráceném pořadí (vytištěné listy vrátíme do zásobníku tiskem nahoru) a potom sudé (v normálním pořadí). Pokud je lichých stránek víc, tak si tiskárna vezme ze zásobníku o jeden list víc, než jsme do něj předtím vrátili.

    Neřešíme způsob, jak se listy otáčí. Závisí to totiž na požadovaném výsledku (jestli tiskneme na výšku nebo na šířku). Když se uživatel trochu zamyslí, tak na to přijde. Ještě na to přijde řeč.

    Případy (ano, ano) a (ne, ne) a jsou si podobné. Nedají se však spojit, protože vytištěné stránky by vždy v jednom z obou případů byly špatně (sestupně) seřazené. Stejně to platí i pro případy (ano, ne) a (ne, ano).

    Oboustranný tisk - praxe

    Jeden ze způsobů oboustranného tisku je pomocí programu psselect z balíku psutils. Program psselect má řadu způsobů, jak říct, které stránky chceme vybrat. Samozřejmostí je výběr sudých (parametr -e) a lichých (-o) stran. Dále se dají strany specifikovat výčtem a rozsahem (-p). Také se dá obrátit pořadí stránek (-r). Jednotlivé volby se dají kombinovat.

    Následující skript vytiskne (s malou pomocí uživatele) oboustranně postscriptový soubor. Předpokládáme, že skript slouží pro tisk na jedné tiskárně, takže příslušné parametry se nastaví přímo ve skriptu a jako parametr se bude předávat jen jméno souboru. Neuvažujeme případ tiskáren s více zásobníky a výstupními drahami, kde jsou odpovědi na výroky 1.) a 2.) různé pro různé zásobníky a výstupní dráhy. Takové tiskárny by mohly umět oboustranný tisk samy a pokud neumí, tak se dá skript upravit.

    #!/bin/bash
    #Použití: $0 soubor_k_tisku.ps
    #Začátek nastavení
    #Na kterou stranu papíru v zásobníku se tiskne. 1=horní, 0=dolní
    input=
    #Na které straně papíru je na výstupu tisk. 1=horní, 0=dolní
    output=
    printcommand='lpr'
    psselect='psselect'
    #Konec nastavení
    #Nastavení výpisů a proměnných
    file=$1
    messagedown="Až se dotiskne, tak vytištěné papíry vraťte do zásobníku tiskem dolů\n a stiskněte Enter."
    messageup="Až se dotiskne, tak vytištěné papíry vraťte do zásobníku tiskem nahoru\n a stiskněte Enter."
    odd="Tisknou se liché stránky."
    oddreverse="Tisknou se pozpátku liché stránky."
    even="Tisknou se sudé stránky."
    evenreverse="Tisknou se pozpátku sudé stránky."
    done="Hotovo"
    #začátek vlastního skriptu
    if [ $input -eq 1 ]
    then
      if [ $output -eq 1 ]
      then
        echo $odd
        $psselect -o $file | $printcommand
        echo -e $messagedown
        read nothing
        echo $even
        $psselect -e $file | $printcommand
        echo $done
      else
        echo $evenreverse
        $psselect -e -r $file | $printcommand
        echo -e $messagedown
        read nothing
        echo $odd
        $psselect -o $file | $printcommand
        echo $done    
      fi
    else
      if [ $output -eq 1 ]
      then
        echo $oddreverse
        $psselect -o -r $file | $printcommand
        echo -e $messageup
        read nothing
        echo $even
        $psselect -e $file | $printcommand
        echo $done
      else
        echo $even
        $psselect -e $file | $printcommand
        echo -e $messageup
        read nothing
        echo $odd
        $psselect -o $file | $printcommand
        echo $done    
      fi
    fi

    Více stránek na jeden list

    Ve své práci jsem řešil problém, jak vytisknout spoustu grafů tak, aby jich bylo více na stránce. Prvním řešením je přesvědčit aplikaci, která grafy generuje, aby je tak zrovna vytiskla (uložila do PostScriptu), druhým řešením je vygenerovat grafy po jednom na stránce a dodatečně je zmenšit a seskupit na stránku.

    K tomuto úkolu se hodí program psnup. Umí seskupit více logických stránek na jeden list papíru. Jako parametr si vezme počet stránek na list papíru a sám rozhodne, jak je na stránku umístit tak, aby co nejlépe využil plochu. Někdy použije papír naležato (landscape). Pokud uzná, že plochu využít neumí, tak to oznámí a neudělá nic. Nedá se mu nijak domluvit. V praxi to znamená, že na jeden list nemůžeme umístit 7, 11, 13, 17... stránek. Ostatní počty zvládá. Dále se dá nastavit velikost papíru (na vstupu i výstupu), okraje papíru (-m), okraje logických stránek (-b), způsob umisťování jednotlivých stránek (po sloupcích -c nebo řádcích - standard), linky mezi stránkami (-d) atd., viz man psnup.

    Příklad 1: chceme stránky ze souboru vstup.ps umístit po čtyřech a uložit do souboru vystup.ps, uděláme to takto:

    psnup -4 vstup.ps > vystup.ps

    Tisk sešitu

    Někdy se hodí vytisknout text tak, že z něho vytvoříme sešit, tj. vytiskneme oboustranně, přeložíme v půlce a sešijeme (vhodné pro krátké články, manuály apod.). Seřadit správně stránky dá docela hodně přemýšlení. Například, pokud máme 12 logických stránek, tak na první list vytiskneme z jedné strany stránky 12 a 1 a z druhé 2 a 11 , na druhý list 10+3 a 4+9 atd. Principiálně by to šlo i programem psselect, ale psbook se hodí lépe.

    psbook se používá ve spojení s programem psnup tak, že výstup psbook se prožene přes psnup -2 a výsledek oboustranně vytiskneme. Pokud si prohlédnete vazbu nějaké staré knihy, uvidíte, že je svázána z mnoha malých sešitků (v angličtině se používá slovo signature). I na toto psbook pamatuje parametrem -s, kde se mu musí předhodit číslo, které je násobkem 4 a znamená počet stránek v jednom sešitku. Pokud neuvedeme nic, nacpe celý soubor do jednoho sešitku. Pokud není počet stránek v souboru násobkem počtu stránek v sešitku, tak se doplní prázdnými stranami.

    Příklad 2: Používám k úspornému tisku skript kniha.sh, který zmenší stránky formátu A4 a umístí je po dvou na list papíru. Výstup skriptu vytisknu oboustranně a dostanu tím sešitek. Použití je následující:

    kniha.sh vstup.ps > vystup.ps

     

    #!/bin/sh file=$1
    psbook $file | psnup -2

    Příklad 3: Osobně tisknu pro oddíl zpěvník pomocí TeXu a psutils takto: Připravím si zpěvník ve formátu A5 jako soubor vstup.dvi. Následující skript připraví soubor pro tisk. Použití je

    zpevnika5 vstup

    (bez .dvi) a výsledek najdu v souboru vstup_vysledek.ps (výstup se dá samozřejmě upravit).

    #!/bin/bash
    dvips -t a5 $1
    psbook $1.ps | psnup -2 -p a4 -P a5 > $1_vysledek.ps

    Parametr -p a4 znamená požadovaný formát výstupu, kdežto -P a5 je formát vstupu. Našel jsem chybu programu psnup - v tomto případě je ve výsledném postscriptovém souboru špatně uvedený formát, a to A5 místo A4. Musí se ručně přepsat na A4 (osmý řádek souboru). Nemám nejnovější verzi psnup, takže nevím, jestli není chyba už opravená.

    Otáčení kolem dlouhé a krátké strany papíru

    Otáčení papíru při oboustranném tisku se dá popsat jednoduše. Předpokládejme, že papír prolézá tiskárnou po délce.

    Pokud tiskneme na výšku (jedna strana na list, listy svážeme na delší straně), otáčíme kolem delší strany papíru. Pokud bychom ale chtěli z nějakého důvodu papíry sešít na horní (kratší) straně a otáčet listy nahoru, tak bychom otáčeli kolem kratší strany papíru.

    Pokud tiskneme sešitek (tj. na šířku), otáčíme kolem kratší strany papíru. Toto se týká obou výše uvedených příkladů.

    Zvláštní situace nastává, pokud sice máme dvě stránky na listu papíru, ale hodláme je sešít do kroužkové vazby tak, že je sešijeme na delší straně papíru. Znamená to, že při prohlížení před námi papíry leží naležato a otáčíme je nahoru. Hodí se to, pokud si okopírujete nějakou knihu po dvojlistech. V takovém případě se papíry otáčí kolem delší strany papíru.

    Než se pustíte do tisku, podívejte se, jestli náhodou tiskárna neotáčí papíry sama. Například, pokud se papír dává do tiskárny zepředu a zase předem vyleze, tak už je otočený kolem kratší strany. Pokud si nejste jisti, musíte na otestování obětovat jeden list papíru.

    Závěr

    Předvedený postup má výhodu v tom, že k oboustrannému tisku nepotřebuje spolupráci správce systému. Stačí, když funguje (jednostranný) tisk. Příslušné skripty si uživatel uloží do svého vlastního adresáře se skripty (typicky to je ~/bin a někde v .bashrc si přidá tento adresář do cesty).

           

    Hodnocení: 42 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Stanislav Brabec avatar 4.3.2004 11:33 Stanislav Brabec | skóre: 45 | Praha
    Rozbalit Rozbalit vše zrcadlové převrácení
    A pokud snad někdo potřebuje patch na zrcadlové převrácení, najde ho tady. Kdysi jsem potřeboval tisknout hotový PostScript na pauzáky, tak jsem to tam přidal.
    5.3.2004 08:59 Josef
    Rozbalit Rozbalit vše Další užitečnosti k tématu
    Za přečtení a na doplnění stojí za zmínku článek o PSUtils na serveru Grafika.cz.

    S tématikou souvisí i následující články, některé zmiňují i jiné nástroje pro další operační systémy:

    Softwarové nástroje pro archovou montáž: Přehled

    Je Linux použitelný v pre-pressu?

    Softwarové nástroje pro archovou montáž: Přehled

    A abych si nakonec přihřál svoji polívčičku, měl by ještě na mých starých stránkách viset popis řešení jedné méně ovyklé, ale tehdy potřebné montáže čtyř stránek na jednu oboustranně.

    Pohoda, hezký den

    Josef
    6.3.2004 10:19 petris
    Rozbalit Rozbalit vše více stránek přessebe
    Zdravim, potřeboval bych dostat 2 stránky přessebe na jednu stránku (mají se překrývat, něco jako dvě vrstvy v Gimpu). Nevíte někdo jak na to?
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.