Previous Next Contents

5. Tiskanje

Pri tiskanju lahko naletimo na razlicne situacije:

5.1 Tiskalniki, ki podpirajo ISO Latin 2

Nekaj novejsih tiskalnikov ze neposredno podpira kodni razpored ISO Latin 2. Med njimi so

Vse, kar morate storiti, je izbrati pravilno kodno stran v tiskalniku. Ubezna sekvenca za tiskalnike Hewlett-Packard je
\033(2N\033(s0p12h0s0b4099T
Oznaka \033 je osmiska koda znaka Escape.

Eden od nacinov, kako z /etc/printcap prilagodimo okolje za tiskanje na tak tiskalnik, je podrobneje opisan v naslednjem razdelku.

5.2 Tiskalniki, ki podpirajo kak drug nabor z nasimi znaki

Ce tiskalnik podpira kak drug nabor z nasimi znaki (ne dolgo nazaj je bila ustaljena praksa, da je bil ROM v tiskalnikih zamenjan z EPROM, v njem pa svedski znaki zamenjani z znaki po JUS I.B1.002), lahko s primerno nastavitvijo v /etc/printcap se vedno tiskamo spise, kodirane po ISO Latin 2.

Primerno moramo dopolniti datoteko /etc/printcap. Za zgled si oglejmo tiskalnik Epson, ki ima znake po JUS I.B1.002 na mestu svedskega nabora.

lp|ascii|epson|Epson LQ-850:\
        :lp=/dev/lp1:\
        :sd=/usr/spool/lpd/epson:\
        :lf=/usr/spool/lpd/ERRORLOG:\
        :mx#0:\
        :sh:
jus|Epson LQ-850 z znaki JUS I.B1.002:\
        :lp=/dev/null:\
        :sd=/usr/spool/lpd/jus:\
        :if=/usr/spool/lpd/jus_filter:\
        :lf=/usr/spool/lpd/ERRORLOG:\
        :mx#0:\
        :sh:
latin2|text|Epson LQ-850 z znaki ISO Latin 2:\
        :lp=/dev/null:\
        :sd=/usr/spool/lpd/latin2:\
        :if=/usr/spool/lpd/latin2_filter:\
        :lf=/usr/spool/lpd/ERRORLOG:\
        :mx#0:\
        :sh:

Zgled ima tri tiskalniske vrste. Prva je dejanski tiskalnik z ameriskim (ASCII) naborom znakov. Druga uporablja filter /usr/spool/lpd/jus_filter:

#!/bin/sh
/usr/spool/lpd/jus_epson | lpr -Pascii
Datoteko torej precedimo skozi filter /usr/spool/lpd/jus_epson in jo postavimo v prvo tiskalnisko vrsto. Filter jus_epson ne napravi drugega, kot da na zacetku doda kodo za preklop v svedski nabor, prepise datoteko z vhoda na izhod, in na koncu doda kodo za preklop nazaj v ameriski nabor. To je tudi edini del programja, ki je odvisen od vrste tiskalnika:
#!/bin/sh
# Tiskanje besedil kodiranih po JUS I.B1.002 na tiskalnik Epson LQ
#
# Izberemo slovenski (svedski) nabor
/bin/echo "\033R\005\c"
# Izpisemo dokument
cat
# Izberemo ameriski nabor
/bin/echo "\033R\000\c"

Tretja vrsta uporablja podoben filter kot druga, le da ta najprej pretvori besedilo iz Latin 2 v JUS, zatem uporabi ze opisani filter za to, da doda na zacetku in na koncu potrebno kodo za tiskalnik, in koncno táko datoteko postavi v prvo vrsto.

#!/bin/sh
/usr/local/bin/recode --force latin2:yu | \
    /usr/spool/lpd/jus_epson | lpr -Pascii
Zgled predpostavlja, da je pot do programa recode /usr/local/bin/recode. Izbiro --force moramo uporabiti, ker je preslikava neobrnljiva -- v Latin 2 imamo tako sumnike kot zavite oklepaje, v JUS pa samo se prve.

Za ta zgled smo morali v imeniku /usr/spool/lpd ustvariti tri podimenike: /usr/spool/lpd/epson, /usr/spool/lpd/jus in /usr/spool/lpd/latin2.

Tiskanje gre zdaj tako:

  1. Brez eksplicitne izbire vrste, ali pa z izbiro -Pepson ali -Pascii se datoteka odtisne kot ASCII:
    lpr datoteka
  2. Z izbiro -Pjus se datoteka odtisne kot besedilo, kodirano po JUS I.B1.002:
    lpr -Pjus datoteka
  3. Z izbiro -Platin2 ali -Ptext se datoteka odtisne kot besedilo, kodirano po ISO Latin 2:
    lpr -Platin2 datoteka

5.3 Tiskalniki PostScript

Obicajno besedilo lahko odtisnemo na tiskalnik PostScript prek enega od filtrov, ki opremijo poslani tok podatkov z ustrezno glavo in poskrbijo za ostale administrativne zadeve. Taksna programa sta npr. a2ps in GNU enscript. Zadnji ze podpira nabor ISO Latin 2, medtem ko je podpora za prvega se v delu.

ftp://ftp.arnes.si/gnu/enscript-1.4.0.tar.gz

GNU enscript

Ce GNU enscript se ni namescen, ga namestimo po navodilih, ki so prilozena programu. Poleg njega potrebujemo se vsaj en font z vsemi nasimi znaki, zapisan v obliki Type 1. Primeren je npr. IBM Courier, ki je prosto dostopen in se distribuira z X Window System, programom ghostscript ipd. Ce nismo prepricani, ali ga imamo ze namescenega, pozenemo:

find / -name cour.pf[ab]

V osebno (~/.enscriptrc) ali skupno konfiguracijsko datoteko (navadno /usr/local/etc/enscript.cfg ali /usr/local/etc/enscriptsite.cfg) dodamo pravilno pot do datotek s pisavami. Poleg tega potrebuje GNU enscript v vsakem imeniku s pisavami se datoteko z imenom font.map, ki vsebuje preslikavo med imeni pisav in datotekami, kjer so shranjene. Ustvarimo jo z ukazom mkafmmap.

Primer konfiguracijske datoteke:

...
#  Kje hranimo pisave PostScript?
AFMPath: /usr/lib/X11/fonts/Type1:/usr/local/lib/ghostscript/fonts
...
#  Privzeti nacin kodiranja:
DefaultEncoding: latin2
...
#  Privzeti format papirja:
DefaultMedia: A4
...
#  lpd izbira tiskalniske vrste z -P...
QueueParam: -P
...
#  Za tiskanje uporabljamo ukaz lpr, ne lp
Spooler: lp

Ko je vse potrebno nastavljeno, odtisnemo besedilo enostavno z ukazom

enscript datoteka


Previous Next Contents