Pri tiskanju lahko naletimo na razlicne situacije:
Nekaj novejsih tiskalnikov ze neposredno podpira kodni razpored ISO Latin 2. Med njimi so
Tole menda deluje:
\033(2N\033(s0p12h0s0b4099T
Z ukazom ESC ( t prepisemo kodno tabelo ISO 8859-2 v drugo
tabelo tiskalnika; zatem z ukazom ESC t izberemo drugo tabelo
tiskalnika (strani C-73 in C-77 v ,,Epson ESC/P Reference Manual``,
december 1997):
\033(t\003\000\002\177\002\033t\002
\033 je osmiska koda znaka Escape.
Eden od nacinov, kako z /etc/printcap prilagodimo okolje za tiskanje na tak tiskalnik, je podrobneje opisan v razdelku 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
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 -ne "\033R\005\c" # Izpisemo dokument cat # Izberemo ameriski nabor /bin/echo -ne "\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
--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
(Matjaz Terpin <
matjaz.terpin@comcom.si>, Message-id:
<Pine.LNX.3.96.980709095750.24607B-400000@guru.comcom.si>)
Matjaz Terpin < matjaz.terpin@comcom.si> je predlagal imenitno izboljsavo pravkar opisanega postopka, pri katerem lahko tiskamo nase znake in oglate in zavite oklepaje. Srz njegovega predloga je filter, ki pred vsakim nasim znakom preklopi v svedski nabor, takoj za njim pa spet nazaj v ASCII.
Datoteka /etc/printcap je v tem primeru taksna:
# /etc/printcap
lp|raw|yu:\
:lp=/dev/lp1:\
:sd=/var/spool/lpd/lp:\
:lf=/var/spool/lpd/ERRORLOG:\
:mx#0:\
:sh:
lat2:\
:lp=/dev/null:\
:if=/etc/lp/lat2.filter:\
:sd=/va