Pri tiskanju lahko naletimo na razlicne situacije:
Nekaj novejsih tiskalnikov ze neposredno podpira kodni razpored ISO Latin 2. Med njimi so
\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.
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:
-Pepson
ali -Pascii
se datoteka odtisne kot
ASCII:
lpr datoteka
-Pjus
se datoteka odtisne kot besedilo,
kodirano po JUS I.B1.002:
lpr -Pjus datoteka
-Platin2
ali -Ptext
se datoteka
odtisne kot besedilo, kodirano po ISO Latin 2:
lpr -Platin2 datoteka
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
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