📚 LinuxDocs
Topics:
All Pages8021X HOWTOACP ModemACPI HOWTOADSL Bandwidth Man..ATA RAID HOWTOATM Linux HOWTOAX25 HOWTOAccessibility Dev ..Accessibility HOWTOAdv Bash Scr HOWTOAdv Routing HOWTOAntares RAID sparc..Apache Compile HOWTOApache WebDAV LDAP..Assembly HOWTOAstronomy HOWTOAthlon Powersaving..Authentication Gat..Autodir HOWTOAviation HOWTOAvr Microcontrolle..BRIDGE STP HOWTOBTTVBackspaceDeleteBandwidth Limiting..Bangla HOWTOBash Prompt HOWTOBattery PoweredBelarusian HOWTOBelgian HOWTOBeowulf HOWTOBocaBogoMipsBootdisk HOWTOBridgeC++ dlopenC C++Beautifier HO..C editing with VIM..CDROM HOWTOCDServer HOWTOCable ModemCaudium HOWTOClone HOWTOCompaq Remote Insi..Compaq T1500 HOWTOConexant+Rockwell ..Cryptoloop HOWTODB2 HOWTODHCPDSL HOWTODVD Playback HOWTODebian Binary Pack..Debian JigdoDebian and Windows..Disk Encryption HO..Disk on Chip HOWTODocBook Demystific..DocBook InstallDocBook OpenJade S..Ecology HOWTOEmacspeak HOWTOEncourage Women Li..Encrypted Root Fil..Euro Char SupportEvent HOWTOFedora Multimedia ..Finnish HOWTOFirewall PiercingFlash Memory HOWTOFont HOWTOFramebuffer HOWTOGCC HOWTOGIS GRASSGlibc Install HOWTOHOWTO HOWTOHOWTO INDEXHP HOWTOHandspring VisorHard Disk UpgradeHardware HOWTOHighQuality Apps H..Home Electrical Co..IBM7248 HOWTOIO Perf HOWTOIP AliasIP Masquerade HOWTOIRCImplement Sys Call..Indic Fonts HOWTOInfrared HOWTOIngresII HOWTOInstall StrategiesInstallation HOWTOInstallfest HOWTOIntkeybItalian HOWTOJabber Server Farm..JavaStation HOWTOKerberos Infrastru..Kernel HOWTOKerneldKodak Digitalcam H..LDAP HOWTOLDP Reviewer HOWTOLILO crash rescue ..LVM HOWTOLeased LineLegoLinksys Blue Box R..Linux+Win95Linux+Win9x+Grub H..Linux+Windows HOWTOLinux Complete Bac..Linux Crash HOWTOLinux Gamers HOWTOLinux Modem SharingLinux Promise RAID..Linux i386 Boot Co..LinuxGL QuakeWorld..Lotus DominoR5MILO HOWTOMMBase Inst HOWTOMP3 CD BurningMail User HOWTOMajordomo MajorCoo..Man PageMasquerading Simpl..Medicine HOWTOMindTerm SSH HOWTOMobile IPv6 HOWTOMock MainframeModule HOWTOModulesMotorola Surfboard..Mozilla OptimizationMulti Distro DevNCURSES Programmin..NFS HOWTONFS Root Client mi..NIS HOWTONetMeeting HOWTONetwork boot HOWTONvidia OpenGL Conf..OLSR IPv6 HOWTOOnline Troubleshoo..Oracle 9i Fedora 3..PA RISC Linux Boot..PCTel MicroModem C..PHP Nuke HOWTOPPP HOWTOPagerPalmOS HOWTOPartitionPartition Mass Sto..Partition Mass Sto..Partition RescuePine ExchangePortSlavePost Installation ..Postfix Cyrus Web ..Pre Installation C..Print2WinPrinting HOWTOProcess AccountingProgram Library HO..Proxy ARP SubnetQmail ClamAV HOWTOQmail VMailMgr Cou..Querying libiptc H..RPM HOWTOReading List HOWTORedHat CD HOWTOReliance HOWTORemote BridgingRemote Serial Cons..SCSI 2.4 HOWTOSCSI Generic HOWTOSLIP PPP EmulatorSRM HOWTOSSL Certificates H..Scanner HOWTOScientific Computi..Scripting GUI TclTkSecure CVS PserverSecure Programs HO..Security HOWTOSecurity Quickstar..Security Quickstar..Serial Laplink HOWTOSerial Programming..Slovak HOWTOSmall MemorySmart Card HOWTOSoftware Proj Mgmt..Software Release P..Sound HOWTOSpam Filtering for..Speech Recognition..SquashFS HOWTOSybase ASA HOWTOSybase ASE HOWTOSybase PHP ApacheTCP Keepalive HOWTOTamil Linux HOWTOTimePrecision HOWTOTimeSys Linux Inst..Token RingTraffic Control HO..Traffic Control tc..UPS HOWTOUnix Hardware Buye..Unix and Internet ..UpgradeUsenet News HOWTOUser Authenticatio..VB6 to TclVMS to Linux HOWTOVPN HOWTOValgrind HOWTOVideoLAN HOWTOVim HOWTOVirtual WebWebcam HOWTOWikiText HOWTOWindows Newsreader..Wireless Link sys ..Wireless Sync HOWTOXDM XtermXDMCP HOWTOXFree Local multi ..XFree86 HOWTOXFree86 R200XFree86 Second MouseXFree86 Video Timi..XML RPC HOWTOXWindow Overview H..XWindow User HOWTOXinerama HOWTOXterminalsHtml singleI810 HOWTOLibdc1394 HOWTOOpenMosix HOWTOPhhttpd HOWTOPpp sshText
Next Previous Contents

7. Tiskanje

Pri tiskanju lahko naletimo na razlicne situacije:

Zadnja moznost ni predmet obravnave tega spisa.

7.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 (PCL) in Epson (ESC/P2) so naslednje
PCL

Tole menda deluje:


\033(2N\033(s0p12h0s0b4099T

ESC/P2

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

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 razdelku Tiskalniki, ki podpirajo kak drug nabor z nasimi znaki.

7.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 .:: nl-template-bakker-17650719303512.onepage.website ::. 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

Zgled predpostavlja, da je pot do programa recode /usr/local/bin/recode. Izbiro .:: jobs.nefeshinternational.org ::. [ArXiv: HAProxy Analysis] --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. .:: zenwriting.net ::.

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

7.3 Tiskalniki, ki podpirajo kak drug nabor z nasimi znaki II

(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=/var/spool/lpd/lat2:\
       :lf=/var/spool/lpd/ERRORLOG:\
       :mx#0:\
       :sh:

Filter /etc/lp/lat2.filter precedi besedilo skozi naslednje sito, /etc/lp/lat2.switch, in ga postavi v vrsto lp:


#!/bin/sh
# /etc/lp/lat2.filter

/etc/lp/lat2.switch | lpr -Plp

,,Meso`` postopka je v datoteki /etc/lp/lat2.switch:


#!/bin/sh
#/etc/lp/lat2.switch

echo -ne "\033R0"

sed -e "s/c/`echo -ne "\033R5\~\033R0"`/g" \
 -e "s/C/`echo -ne "\033R5\^\033R0"`/g" \
 -e "s/s/`echo -ne "\033R5\{\033R0"`/g" \
 -e "s/S/`echo -ne "\033R5\[\033R0"`/g" \
 -e "s/z/`echo -ne "\033R5\140\033R0"`/g" \
 -e "s/Z/`echo -ne "\033R5\@\033R0"`/g" \
 -e "s/c/`echo -ne "\033R5\}\033R0"`/g" \
 -e "s/C/`echo -ne "\033R5\]\033R0"`/g" \
 -e "s/d/`echo -ne "\033R5\|\033R0"`/g" \
 -e "s/D/`echo -ne "\033R5\\\\033R0"`/g" 

echo -ne "\033R5"

Matjaz pravi se: sed slabo prebavi ``echo -ne "\000"'', zato uporabljam kar znak 0 (niclo), saj je tiskalnik (NEC pinwriter P7) zadovoljen tudi s tem.

7.4 Tiskalniki PostScript

``Naravni'' kodni nabor v PostScriptu je Adobe Standard Encoding. Nasih crk ne pozna. Pa ne le nasih, tudi mnogih drugih crk ne pozna, in pravzaprav sploh nima tovrstnih ambicij. Namesto tega je ASCII razsirjen z gradniki sestavljenih znakov: stresica, ostrivec, diereza, sedij itd. -- vsi so tam. Jezik PostScript pa omogoca definiranje sestavljenih znakov. Vse skupaj je cakalo samo se nekoga, ki bo definiral sestavljene znake za kodni nabor ISO Latin 2. Ta nekdo je bil Juliusz Chroboczek, ki je napisal paket ogonkify.

Filtra a2ps in GNU enscript sta bila napisana z namenom, da resita za nase kraje neobicajno zagato: kako odtisniti cisto obicajno besedilo na tiskalnik, ki razume edino PostScript. Eden in drugi postavita stran v PostScriptu z danim besedilom in jo posljeta na tiskalnik. Fleksibilnost PostScripta omogoca tudi transformacije (npr. pomanjsave) ali poudarjanje sintakse pri tiskanju programskih izpisov. Oba podpirata nabor ISO Latin 2.

http://www.dcs.ed.ac.uk/home/jec/programs/ogonkify/
http://www-inf.enst.fr/~demaille/a2ps/
http://www.iki.fi/~mtr/genscript/
ftp://ftp.arnes.si/gnu/enscript/enscript-1.6.1.tar.gz

ogonkify

Ogonkify je filter za izpise v PostScriptu, in omogoca pravilen odtis crk tudi v jezikih, ki ne uporabljajo nabora ISO Latin 1. Ker je filter, je ravno korak prepozen, da bi lahko pocel to elegantno, ampak mora prezveciti kakrsnokoli grdobijo pac izpljune program korak pred njim in iz dobljenega izdelati lep odtis. Programi pa izdelujejo datoteke PostScript vsak malo drugace, kar filtru ``ogonkify'' otezi delo. Zaenkrat podprti formati izpisa PostScript so: NCSA Mosaic, Netscape Navigator, StarOffice, Applixware in XFig. .:: groups.google.com ::.

Ogonkify za delovanje potrebuje Perl. Ko je namescen, ogonkify uporabimo takole za odtis spletnega sestavka, shranjenega iz Navigatorja:

ogonkify -AT -N netscape.ps | lpr

GNU enscript

Ce GNU enscript se ni namescen, ga namestimo po navodilih, ki so prilozena programu. Poleg njega potrebujemo se vsaj eno pisavo 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: lpr

Ko je vse potrebno nastavljeno, odtisnemo besedilo enostavno z ukazom

enscript datoteka

a2ps

Z izdajo 4.7.21 je Akim Demaille v a2ps vgradil mehanizem za sestavljene znake, ki ga je Juliusz Chroboczek uporabil v filtru ogonkify.

Nasim krajem prilagodimo a2ps z majckeno spremembo nastavitvene datoteke. Sistemsko nastavitveno datoteko najdemo navadno kot /usr/etc/a2ps.cfg, /usr/local/etc/a2ps.cfg ali kaj podobnega; osebna se imenuje ~/.a2psrc. [MDN Docs: SQLite]


...
# Default encoding
Options: --encoding=latin2

# Default media
Options: --media=A4
...


Next Previous Contents

Share or Research:

Share on FB Post to X LinkedIn 🤖 Ask AI about this