[python] tlac z pythonu

Petr Prikryl Prikryl na skil.cz
Pondělí Duben 4 15:21:14 CEST 2005


> > Martin Herceg napisal...
> >
> > > [...] nevie mi niekto poradit ako poslat zo skriptu
> > > nieco tlacit na tlaciaren?
> >
> > Chtělo by to trochu podrobněji
> > vylíčit, čeho potřebuješ dosáhnout
> > a zda to má fungovat v Unixu nebo
> > pod Windows. Tak například poslat
> > hotový textový soubor na tiskárnu je
> > relativně jednoduché. Nějak zpracovat
> > text a vytisknout jej různým písmem
> > může dát dost práce.
> >
> len linux
> a momentalne to robim tak ze vygenerujem 
> cez reportlab subor, cez command to dam 
> do PS a potom priamo cez command to 
> posielam na tlaciaren leze mi na nervy 
> ze musim tieto veci riesit externe a nie 
> priamo z pythonu.

Pokud jde o pomocný nástroj, který
se nebude šířit a podporovat u více
uživatelů, pak doporučuji programově
simulovat ruční postup. 

V Pythonu k tomu lze výhodně použít os.popen(),
případně některou z variant. Ten umožňuje provést 
příkaz, který by se jinak zadával na příkazovém
řádku. Varianty popen2() až popen4()
se liší v přesměrování standardních 
souborů (stdin, stdout, stderr). Přes
příslušné handle můžu simulovat přesměrování
vstupů a výstupů z command line a reagovat
na případná chybová hlášení vypisovaná
příkazem na stderr...

Není to určitě nejelegantnější řešení, 
ale u jinak ručně prováděného (a vyzkoušeného)
postupu to většinou funguje velmi dobře.
A co je hlavní, lze to velmi rychle implementovat.

Doporučuji definovat funkci, která celý postup 
tisku obalí. V místech, kde potřebuji tisknout,
by se pak měla volat jen a jen tato funkce. 
V budoucnu lze pak měnit její implementaci.
Specifický postup při tisku se tím oddělí 
od zbytku funkčnosti.

Petr



Další informace o konferenci Python