Linux Printing HOWTO
 Grant Taylor <[email protected]> Svensk �vers�ttning
 av Marcus Rej�s <[email protected]>
 Version 3.17,  1998/06/17 14:03:27 (�versatt 9 juli 1998)

 Detta �r Linux Printing HOWTO (Linux skriva ut HURD�), en samling av
 information om hur man skapar, f�rhandsgranskar, skriver ut och faxar
 n�got under Linux (och andra Unixliknande system).
 ______________________________________________________________________

 Inneh�llsf�rteckning























































 1. Introduktion

    1.1 �vers�ttares kommentar
    1.2 Historia
    1.3 Copyright

 2. Hur man skriver ut

 3. Skrivarrutiner i k�rnan

    3.1 lp enheten
    3.2 Parport enheten `parport device' (k�rnor >= 2.1.33)
    3.3 Seriella enheter

 4. Skrivare som st�ds

    4.1 Skrivar-specifika noteringar

 5. Vilken spooling mjukvara?

 6. Hur det fungerar, grunderna

 7. Konfigurering, grunderna

    7.1 Traditionell lpd konfiguration
    7.2 Filr�ttigheter

 8. Skaffa utskriftsmjukvara

 9. Distributioners l�sningar

    9.1 Red Hat
    9.2 Andra Distributioner

 10. Ghostscript.

    10.1 Anropa Ghostscript
    10.2 Ghostscript output justering
       10.2.1 Output placering och storlek
       10.2.2 Gamma, punktstorlekar, etc.

 11. Hur man skriver ut p� en skrivare �ver n�tverket

    11.1 Till en Unix/lpd v�rd
       11.1.1 Med
       11.1.2 Med
    11.2 Till en  Win95, WinNT, LanManager, eller Samba skrivare
    11.3 Till en NetWare Printer
    11.4 Till en EtherTalk (Apple) skrivare
    11.5 Till en HP eller annan ethernet skrivare
       11.5.1 Till �ldre HPs
    11.6 K�ra ett
    11.7 Fr�n Windows.
    11.8 Fr�n en Apple.
    11.9 Fr�n Netware.

 12. Windows-only skrivare

    12.1 Ghostscripts Windowsbaserade omdirigerare
    12.2 Programmet pbm2ppa

 13. Hur skriver man ut till en fax.

    13.1 Med ett faxmodem
    13.2 Anv�nda Remote Printing Service

 14. Hur generar jag n�got v�rt att skriva ut.

    14.1 Markeringsspr�k (Markup languages)
    14.2 WYSIWYG Ordbehandlare

 15. F�rhandsgranskning av utskrivbara saker p� sk�rmen.

    15.1 PostScript
    15.2 TeX dvi
    15.3 Adobe PDF

 16. Seriella skrivare under lpd

    16.1 Konfigurera i printcap
    16.2 �ldre seriella skrivare som tappar tecken

 17. Tack till



 ______________________________________________________________________

 1.  Introduktion

 Linux Printing HOWTO borde inneh�lla allt du beh�ver veta f�r att
 kunna s�tta upp utskriftsm�jligheter p� din Linuxburk. Som brukligt
 �r, s� �r det n�got mer avancerat �n Microsoft och Apples 'peka och
 klicka'-v�rld, men det �r ocks� mer flexibelt och definitivt l�ttare
 att administrera f�r stora LANs.

 Detta dokument �r strukturerat s� att de flesta bara beh�ver l�sa den
 f�rsta halvan (ungef�r). Det mesta av det abstrakta och
 situiationsberoende stoffet kommer i andra halvan av dokumentet och
 kan l�tt lokaliseras i inneh�llsf�rteckningen, men f�rmodligen beh�ver
 de flesta l�sa kapitel 9 eller 10.

 Eftersom version 3.x �r en helt omskriven version har mycket av
 stoffet fr�n tidigare versioner plockats bort. Detta f�r att den
 f�reg�ende versionen var s� stor som 60 utskrivna papper och mycket
 sv�rl�st. Om du inte hittar svaret p� vad du s�ker h�r b�r du g�ra p�
 f�ljande s�tt: a) s�k igenom f�rg�ende version av detta dokument p�
 The Printing HOWTO Home Page <http://www.picante.com/~gtaylor/pht/>
 och b) skicka mig en rad d�r det st�r vad som borde vara med i detta
 dokument men som inte �r det.

 Printing HOWTO Home Page <http://www.picante.com/~gtaylor/pht/> �r ett
 bra st�lle f�r att hitta senaste versionen, den finns ocks�,
 naturligtvis, fr�n SunSite (sunsite.unc.edu) och din lokala spegling
 av LDP.


 1.1.  �vers�ttares kommentar

 Det skall s�gas att jag inte �r n�gon expert p� att �vers�tta
 dokument. Men jag g�r s� gott jag kan. Vissa tekniska ord har mig
 veterligt inga svenska motsvarigheter, dessa st�r kvar p� engelska. I
 de fall det �r vanligt med ett f�rsvenskat uttal eller stavning av ett
 ord har jag anv�nt det.

 Ett ofta �terkommande ord �r Daemon. Detta �r ett engelskt ord som mig
 veterligt saknar svensk motsvarighet. Jag anv�nder det engelska ordet
 med n�got f�rsvenskat uttal i tal, och det engelska i text. En daemon
 �r ett program som (oftast) startas upp vid systemstarten och sedan
 k�rs i bakgrunden f�r att bevaka och utf�ra vissa uppgifter.


 Jag reserverar mig f�r �vers�ttningsfel, rent spr�kliga fel och
 stavfel.

 Alla l�nkar och h�nvisningar i Texten g�r till originaldestinationen,
 vilket inneb�r att de leder till engelska dokument.

 �verallt i texten utom denna sektion avser ordet 'jag'
 originalf�rfattaren.

 Hoppas att detta dokument kommer till nytta!

 --Marcus Rej�s <[email protected]>


 1.2.  Historia

 Detta �r den tredje generationen, vilket betyder att det �r tredje
 g�ngen dokumentet skrivs om. Dokumentets historia kan beskrivas som
 f�ljer:


 1. Jag skrev printing-howto 1992 eftersom det blev f�r m�nga fr�gor om
    utskrifter i comp.os.linux, och postade det i gruppen. Detta kom
    n�gra m�nader f�re HOWTO projektet och var s�ledes den f�rsta
    `mini-FAQen' som kallades `howto'. Den h�r utg�van var i ren ascii.

 2. Efter att ha hoppat in i HOWTO projektet blev Printing-HOWTO
    sammanslagen med en Lpd FAQ av Brian McCauley
    <[email protected]>; vi fortsatte att samarbeta med PHT under
    ett par �r eller s�. Vid n�gon tidpunkt implementerade vi Karl
    Auer's <[email protected]> arbete. Denna generation av PHT var i
    TeXinfo, och fanns tillg�nglig i  PS, HTML, Ascii, och Info.

 3. Efter att ha l�titi PHT f�rfalla i �ver ett �r, och ett misslyckat
    f�rs�k att l�mna �ver det till n�gon annan gjordes denna
    omskrivning. Denna generation av dokumentet �r i Linuxdoc-SGML
    (numer k�nt som Sgml-tools paketet).

 1.3.  Copyright

 Detta dokument �r Copyright (c) 1997 av Grant Taylor.  Kopiera och
 distribuera detta vida omkring, men modifiera inte dokumentet eller
 utel�mna mitt namn.


 2.  Hur man skriver ut

 Om du redan har installerat lpd och konfigurerat f�r att skriva ut p�
 din skrivare, eller om din systemadministrat�r eller f�rs�ljare har
 gjort det �t dig s� beh�ver du bara l�ra dig att anv�nda kommandot
 lpr. Printing Usage HOWTO <http://sunsite.unc.edu/LDP/HOWTO/Printing-
 Usage-HOWTO.html> t�cker detta, och en del andra kommandom f�r att
 manipulera skrivark�er som du troligen vill l�ra dig.

 Men om du har ett nytt system eller ny skrivare s� m�ste du installera
 och konfigurera skrivar rutiner p� ett eller annat s�tt innan du kan
 skriva ut. L�s vidare!


 3.  Skrivarrutiner i k�rnan

 3.1.  lp enheten

 Linux k�rnan (<=2.1.32), f�rutsatt att du kar kompilerat in eller
 laddat lp enheten (output av cat /proc/devices skall inneh�lla enheten
 lp), tillhandah�ller en eller flera av /dev/lp0, /dev/lp1, och
 /dev/lp2. Dessa tilldelas INTE dynamisk utan var och en av dem svarar
 mot en specifik I/O adress. Detta betyder att din f�rsta skrivare kan
 vara lp0 eller lp1 beroende p� din h�rdvara. Prova b�da.

 N�gra f� anv�ndare har rapporterat att deras dubbelriktade lp portar
 inte uppt�cks om de anv�nder en �ldre universalriktad skrivarkabel. Se
 till att du har en passande kabel.

 Man kan inte k�ra plip och lp drivrutinerna p� samma g�ng p� en port.
 Du kan dock ladda den ena eller den andra n�r som helst antingen
 manuellt, eller med kerneld om du har version 2.x (eller senare
 versioner av 1.3.x) av k�rnan. Genom att noggrant st�lla in irq och
 dylikt, kan du antagligen k�ra plip p� ena porten och lp p� den andra.
 N�gon gjorde s� genom att editera drivrutinen. Jag v�ntar ot�ligt p�
 en positiv rapport om n�gon som lyckats g�ra detta med bara en smart
 kommandorad.

 Det finns ett litet verktyg som heter tunelp med vilket du, som root,
 kan finjustera Linux lp enheters irq, "polling rate" och andra
 alternativ.

 Om den �r inbyggd, i en del 1.3.x och senare k�rnor, kan k�rnan ta
 emot lp= argumentet f�r att s�tta irq och io adresser:


      N�r lp drivrutinen �r inbyggd i k�rnan kan du anv�nda kommandoraden
      till LILO/LOADLIN f�r att s�tta portadresser och irq's som
      den drivrutinen skall anv�nda.

      Syntax:      lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

      exempel:   lp=0x378,0   eller   lp=0x278,5,0x378,7 **

      Observera att om du anv�nder denna finess m�ste specificera *alla*
      portar som du vill anv�nda, det finns inga "defaults". Du kan st�nga av
      en inbyggd drivrutin med lp=0.




 Om den laddas som en modul i version 2 och sena 1.3.x k�rnor �r det
 m�jligt att specificera io adresser och irq's p� insmod kommandoraden
 (eller i /etc/conf.modules f�r att ha effekt p� kerneld) genom att
 anv�nda den vanliga syntaxen. Parametrarna �r io=port0,port1,port2 och
 irq=irq0,irq1,irq2. L�s manualsidan f�r insmod f�r ytterligare
 information om detta.


 **F�r dem av er (som jag sj�lv) som aldrig kan hitta
 standardportnumren n�r ni beh�ver dem, de �r som i det andra exemplet
 ovan. Den andra porten (lp0) �r p� 0x3bc. Jag har ingen aning om
 vilken irq den brukar anv�nda.


 K�llkoden f�r Linux parallellportsdrivrutin finns i
 /usr/src/linux/drivers/char/lp.c.


 3.2.  Parport enheten `parport device' (k�rnor >= 2.1.33)

 Med b�rjan i k�rna 2.1.33 (och tillg�nglig som patch f�r k�rna
 2.0.30), �r lp enheten bara en klient till den nya parport enheten.
 F�rdelen med parportenheten �r att den r�ttar till ett antal problem
 som den gamla lp enheten led av - den kan dela port med andra
 drivrutiner, den tilldelar tillg�ngliga parallellportar dynamiskt till
 enhetsnummer ist�llet f�r att kr�va en fast kommunikation mellan I/O
 adresser och portnummer, och s� vidare.

 Tillkomsten av parport enheten har m�jliggjort en hel flock av nya
 parallell-ports drivrutiner f�r saker som, Zip drives, Backpack CD-
 ROMs och diskar, etc. En del av dessa finns ocks� tillg�ngliga f�r
 2.0.x k�rnor; leta runt p� n�tet.


 Jag kommer att t�cka parport drivaren mer komplett d� jag sj�lv
 anv�nder en, men tills vidare kan du l�sa filen
 Documentation/parport.txt i din k�llkod till k�rnan eller titta p�
 parport web site <http://www.cyberelk.demon.co.uk/parport.html>.



 3.3.  Seriella enheter

 Seriella enheter heter vanligtvis n�got som /dev/ttyS1 under Linux.
 Verktyget stty l�ter dig interaktivt studera eller s�tta
 inst�llningarna f�r en serieport; setserial l�ter dig kontrollera
 ytterligare n�gra attribut och konfigurera IRQs och I/O adresser f�r
 icke standard portar. Ytterligare behandling av serieportar under
 Linux hittas i Serial-HOWTO <http://sunsite.unc.edu/mdw/HOWTO/Serial-
 HOWTO.html>.


 Om du anv�nder en l�ngsam seriell skrivare med fl�deskontroll kan du
 komma att uppt�cka att dina utskrifter trunkeras. Detta kan komma av
 att serieportens normala beteende �r att sl�nga alla o�vers�nda tecken
 fr�n sin buffer 30 sekunder efter det att portenheten st�ngts.
 Bufferten kan h�lla upp till 4096 tecken, och om din skrivare anv�nder
 fl�deskontroll och �r s� l�ngsam att den inte kan ta emot all data ur
 bufferten inom 30 sekunder efter det att utskriftsmjukvaran st�ngt
 porten kommer det sista av din utskrift att g� f�rlorad. Om kommandot
 cat file > /dev/ttyS2 producerar kompletta utskrifter f�r korta filer
 och trunkerade f�r l�ngre kan du ha detta problem.


 30 sekundersintervallet kan justeras genom "closing_wait" kommandorads
 argumentet till setserial (version 2.12 and later). En maskins
 serieportar initieras vanligtvis genom ett anrop till setserial i
 startfilen rc.serial. Anropet till skrivarserieporten kan modifieras
 s� att det s�tter closing_wait p� samma g�ng som det s�tter den
 portens andra parametrar.



 4.  Skrivare som st�ds

 Linux k�rnan st�der i stort s�tt alla skrivare du kan ansluta till en
 seriell eller parallell port, men det finns saker att se upp med, och
 skrivare som ej g�r att anv�nda �ven om de (elektroniskt s�tt) kan
 kommunicera med Linux. Fr�mst bland dessa inkompatibla skrivare �r
 s�dana som f�rlitar sig p� "Windows Printing System".  (De brukar vara
 vagt markerade med "for Windows", eller kallas "GDI"-skrivare.)  Dessa
 skrivare funkar inte med Linux. De har inte n�gon som helst
 intelligens och f�rlitar sig p� att datorns CPU skall g�ra mycket av
 det arbete som traditionellt sk�ts av skrivarens processor.
 Olyckligtvis kan dessa uppgifter bara utf�ras av tillverkarspecifika
 drivrutiner som bara fungerar under Windows. S� k�p inte en s�dan f�r
 att anv�nda med Linux. (Obsevera, om du redan har en s� finns det s�tt
 att f� Lunux att skriva till en, men de �r ganska kr�ngliga och jag
 har aldrig provat sj�lv. Se avsnitt 12 i detta dokument f�r
 ytterligare behandling av Windows-only skrivare.)


 Vad g�ller skrivare som fungerar under Linux �r det b�sta en skrivare
 med PostScript st�d. N�stan all Unix mjukvara som skapar utskrifter,
 skapar dessa i PostScript format, s� uppenbart �r det l�mpligt att ha
 en skrivare som st�der PostScript direkt. Olyckligtvis �r PostScript
 st�d ovanligt p� andra skrivare �n laserskrivare, och �r ibland ett
 kostsamt tillbeh�r.


 Om du inte har den (st�rre) budget som beh�vs f�r att skaffa en
 PostScript skrivare kan du skaffa en skrivare som st�ds av
 Ghostscript, en fri PostScript tolk som anv�nds i st�llet f�r �kta
 PostScript st�d i skrivaren. P� Ghostscript Home Page
 <http://www.cs.wisc.edu/~ghost/> finns en lista �ver skrivare som
 st�ds och information om nya och experimentella drivrutiner. Bidrag
 till att f�rb�ttra sidan med skrivare som st�der Ghostscript genom att
 rapportera dina (miss)lyckanden med denna mjukvara.


 Adobe har nu ett nytt skrivarspr�k som heter "PrintGear" Jag tror att
 det �r ett kraftigt f�renklat bin�rformatspr�k med en del arv fr�n
 PostScript men ingen PostScript kompabilitet. Jag har inte h�rt n�got
 om att Ghostscript skulle st�da det. Men en del av dessa skrivare
 st�der andra spr�k som PCL, och dessa fungerar under Linux.


 4.1.  Skrivar-specifika noteringar

 Detta avsnitt �r, och  kommer alltid att vara inkomplett. Men det jag
 skriver h�r b�r alltid vara korrekt. S� h�r kommer det:


    Canon BJ-10ex
       En rapport f�resl�r att Canonskrivaren fungerar mycket b�ttre i
       Epson LQ l�get (som s�tts med en dip-switch). Tydligen blev
       utskriften avbruten eller felaktig i Canon l�ge. � andra sidan,
       �r det mycket tydligt Canonst�d i Ghostscript, s� det kan ha
       varit en lyckotr�ff.

    Lexmark
       Lexmark (en g�ng en del av IBM, tror jag) g�r m�nga skrivare,
       m�nga av dem �r skrivare enbart f�r Windows:

    �  Color Jetprinter 1000

    �  Color Jetprinter 1020 (non Business Edition)

    �  Color Jetprinter 2030

    �  Color Jetprinter 2050

    �  Color Jetprinter 2070

    �  Color Jetprinter 7000

    �  Color Jetprinter 7200

    �  Winwriter 100

    �  Winwriter 150c

    �  Winwriter 200





 5.  Vilken spooling mjukvara?

 Tills nyligen var valet f�r Linuxanv�ndare enkelt - alla k�rde samma
 gamla lpd som n�stan ordagrant kom fr�n BSD's Net-2 kod. �ven idag har
 de flesta distribut�rer med denna mjukvara. Men det b�rjar p� att
 �ndras. SVR4-liknande system inkluderande Sun's Solaris har ett helt
 annat utskrifts spooling paket, centrerat kring lpsched. Och vissa
 tecken tyder p� att Linuxdistribut�rer kommer att byta till LPRng, en
 inte alls lika f�r�ldrad skrivar spooling mjukvara som �r tillg�nglig
 fritt. LPRng �r mycket l�ttare att adminitrera f�r st�rre
 installationer och har en mindre skr�mmande slumpvis kodbas som lpd �r
 full av. Det kan till och med �rligt h�vda sig som s�kert - det finns
 inga SUID bin�rer, och det st�der autenticering via PGP eller
 Kerberos.


 F�r tillf�llert, trots belysningen av nya alternativ, �r lpd
 troligtvis utm�rkt f�r de flesta Linuxanv�ndare. Trots att det inte �r
 det stiligaste systemet, fungerar det utm�rkt d� det v�l �r
 konfigurerat och det �r v�l f�rst�tt och rikligt dokumenterat i
 tredje-part b�cker om Unix.


 Om du vill ha ytterligare information om LPRng, kolla LPRng Web Page
 <http://www.astart.com/lprng/LPRng.html>. Framtida versioner av denna
 HOWTO kommer att inkludera b�de hur man anv�nder LPRng och vanlig lpd.


 6.  Hur det fungerar, grunderna


 F�r att f� utskrivning att fungera bra m�ste du f�rst� hur lpd
 systemet fungerar.

 Lpd st�r f�r Line Printer Daemon, och refererar i en del texter till
 b�de daemonen och hela samlingen av program som hanterar
 utskriftsspoolingen. Dessa �r:


    lpd
       Spooling daemon.  En av dessa k�r f�r att kontrollera allt p� en
       maskin, OCH en k�rs per skrivare medan skrivaren skriver ut.

    lpr
       Anv�ndares spooling kommando.  Lpr kontaktar lpd och stoppar in
       ett nytt skrivarjobb i k�n

    lpq
       Listar jobben i en skrivark�.

    lpc
       Lpd system kontroll kommando.  Med lpc kan du stoppa, starta,
       omorganisera, etc skrivark�erna.

    lprm
       lprm tar bort et jobb ur skrivark�n.

 S� hur sitter det ihop? Jo, n�r systemet startar upp, startas lpd. Den
 skannar igenom filen /etc/printcap f�r att f� reda p� vilka skrivare
 som den skall hantera k�er f�r. Var g�ng n�gon k�r lpr s� kontaktar
 lpr lpd genom /dev/printer, och matar lpd med b�de filen som skall
 skrivas ut och information om vem som skriver och hur den skall
 skrivas ut. lpd skriver s� ut filen p� den passande skrivare som st�r
 p� tur.


 lp systemet var fr�n b�rjan konstruerat n�r de flesta skrivare var
 radskrivare - dvs, folk skrev mest vanlig ascii. Men det visar sig att
 bara lite scriptjob beh�vs f�r att lpd skall fungera f�r dagens
 utskriftsjob, som oftast �r i PostScript, eller text, eller dvi,
 eller...


 7.  Konfigurering, grunderna

 7.1.  Traditionell lpd konfiguration

 Den minimala konfigureringen f�r lpd resulterar i ett system som kan
 k�a filer och skriva ut dem. Det tar ingen h�nsyn till om skrivaren
 f�rst�r dem eller inte, och kommer f�rmodligen inte att leda till
 attraktiva utskrifter. Men det �r ett f�rsta steg mot att f�rst� hur
 det funkar, s� l�s vidare!

 F�r att l�gga en skrivark� till lpd m�ste du l�gga till en post
 (entry) i /etc/printcap, och skapa en ny katalog f�r skrivark�n (spool
 directory) under /var/spool/lpd.

 En post i /etc/printcap ser ut s� h�r:


      # LOCAL djet500
      lp|dj|deskjet:\
              :sd=/var/spool/lpd/dj:\
              :mx#0:\
              :lp=/dev/lp0:\
              :sh:




 Detta definierar en skrivark� som kallas lp, dj, eller deskjet, k�ade
 (spoolade) i katalogen /var/spool/lpd/dj, utan begr�nsning p�
 utskriftsjobbens storlek om skriver till enheten /dev/lp0 och som inte
 l�gger ett f�rs�ttsblad (med namnet p� den person som skriver ut,
 m.m.) till utskriften.

 L�s nu manualsidan (man-page) f�r printcap.

 Ovanst�ende ser v�ldigt enkelt ut, men det finns en hake - s�vida inte
 jag s�nder filer som som en desjet 500 f�rst�r kommer denna deskjet
 att skriva konstiga saker. Till exempel om vi skickar en vanlig Unix
 text fil till en deskjet f�r vi en utskrift enligt f�ljande:


      This is line one.
                       This is line two.
                                        This is line three.




 osv. En PostScript fil som skrivs till denna k� resulterar i en vacker
 listning av PostScript kommandon, utskrivna med denna trappstegseffekt
 (staircase effect), men ingen anv�ndbar utskrift.

 Tydligen beh�vs n�got mer, och detta �r syftet med filtrering
 (filtering). De mer observanta av er som l�ste manualsidan till
 printcap kanske uppm�rksammade spool-attributen if och of.  Just if,
 eller 'input-filter' �r precis vad vi beh�ver h�r.

 Om vi skriver ett litet script som l�gger till vagnretur f�re radbyten
 och kallar det filter kan trappstegseffekten elemineras. Vi m�ste
 ocks� l�gga in en if rad i v�r printcap-post  h�r ovan:


      lp|dj|deskjet:\
              :sd=/var/spool/lpd/dj:\
              :mx#0:\
              :lp=/dev/lp0:\
              :if=/var/spool/lpd/dj/filter:\
              :sh:




 Ett enkelt filterscript skulle kunna vara:


      #!perl
      # Raden ovan skall ha hela s�kv�gen till perl
      # Scriptet m�ste vara k�rbart: chmod 755 filter
      while(<STDIN>){chop $_; print "$_\r\n";};
      # Eventuellt beh�ver du avsluta med att mata ut papperet: print "\f";




 Om vi gjorde som ovan skulle vi f� en skrivark� till vilken vi kunde
 skriva ut vanliga Unix textfiler och f� ett meningsfullt resultat.
 (Ja, det finns fyra miljoner b�ttre s�tt att skriva detta filter men
 f� som �r s� illustrativa. Du uppmuntras att g�ra detta mer effek�
 tivt.)

 Det enda kvarvarande problemet �r det att det inte �r alltf�r 'hett'
 att skriva ut vanlig text - visst skulle det vara b�ttre att kunna
 skriva ut PostScript och annan formaterad eller grafisk typ av
 utskrift. Jo det �r klart att det vore b�ttre, och det �r inte sv�rt
 att fixa till. Metoden �r helt enkelt ett till�gg till ovanst�ende
 radmatnings-fixar filter. Om du kan skriva ett filter som kan
 acceptera godtyckliga filformat som input och producera DeskJet-kosher
 output f�r var och en av dessa har du verkligen ett smart utskrifts
 system.

 Ett s�dant filter kallas ett magic filter.  Bry dig inte om att skriva
 ett s�dant sj�lv s�vida du inte skriver mycket underliga saker - Det
 finns m�nga redan skrivna �t dig p� n�tet. APS Filter �r bland de
 b�sta, eller din Linuxdistribution kan ha ett
 skrivarkonfigureringsprogram som g�r detta v�ldigt enkelt.


 7.2.  Filr�ttigheter

 P� allm�n beg�ran l�gger jag in en lista p� filr�ttigheterna p�
 intressanta filer i mitt system. Det finns flera b�ttre s�tt att l�sa
 detta, idealiskt genom att anv�nda bara SGID bin�rfiler och inte g�ra
 allt SUID root, men s� h�r var mitt system fr�n b�rjan och det funkar
 bra f�r mig.  (Uppriktigt sagt, om din leverant�r inte ens kan
 leverera ett fungerande lpd s� �r du ute p� djupt vatten).


      -r-sr-sr-x   1 root     lp    /usr/bin/lpr*
      -r-sr-sr-x   1 root     lp    /usr/bin/lprm*
      -rwxr--r--   1 root     root  /usr/sbin/lpd*
      -r-xr-sr-x   1 root     lp    /usr/sbin/lpc*
      drwxrwxr-x   4 root     lp    /var/spool/lpd/
      drwxr-xr-x   2 root     lp    /var/spool/lpd/lp/


 Lpd m�ste f�r n�rvarande k�ras som root s� att den kan ansluta till
 `low-numbered lp service port'. Den borde bli UID lp.lp eller n�got
 s�dant efter anslutning, men jag tror inte att den blir det. Det �r
 inte bra.


 8.  Skaffa utskriftsmjukvara

 M�nga f�rdigskrivna filterpaket (och annan utskriftsrelaterad
 mjukvara) finns tillg�ngliga fr�n SunSite
 <ftp://sunsite.unc.edu/pub/Linux/system/printing/>. Program som
 psutils, a2ps, mpage, dvitodvi, flpr, etc kan alla hittas d�r.


 Ett tag fanns det flera olika mjukvarupaket ute som f�rs�kte g�ra
 skrivarkonfigureringen enklare. De finns troligen kvar, men en av de
 b�sta och aktuellaste �r Andreas Klemm's APS Filter paket, som har
 menystyrd printcap konfigurerare och hanterar praktiskt taget alla
 t�nkbara typer av indata. Om din distribut�r inte skickar med ett
 trevligt konfigureringsprogram, �r APS Filter r�tt v�g.


 9.  Distributioners l�sningar

 Detta avsnitt �r, per definition, inte komplett. Skicka g�rna in
 detaljer om din favoritdistribution.


 9.1.  Red Hat

 Red Hat har ett grafiskt verktyg f�r skrivaradministration (i
 kontrollpanelen) som kan l�gga till n�tverksskrivare och lokala
 skrivare. Det l�ter dig v�lja en skrivartyp st�dd av ghostscript och
 en Unixenhetsfil att skriva till, och installerar en post i
 /etc/printcap och skriver ett kort PostScript-och-ascii magic filter
 baserat p� gs och  nenscript.  Denna l�sning fungerar ganska bra och
 �r enkel att konfigurera f�r vanligt f�rekommande fall.


 9.2.  Andra Distributioner

 Sn�lla, skicka mig info om vad andra distributioner g�r!


 10.  Ghostscript.

 Ghostscript �r ett otroligt betydelsefullt program f�r utskrifter
 under Linux. De flesta unixprogram som genererar utskrifter genererar
 PostScript, vilket oftast �r ett $100 tillbeh�r till en skrivare.
 Ghostscript, � andra sidan, �r gratis, och genererar din skrivares
 spr�k fr�n PostScript. Kombinerat med ditt lpd input filter, f�r du en
 virtuell PostScript skrivare och f�renklar livet avsev�rt.

 Ghostscript finns i tv� versioner. Den kommersiella versionen av
 Ghostscript, kallad Aladdin Ghostscript, f�r anv�ndas fritt f�r
 personligt bruk men f�r inte distribueras med kommersiella
 Linuxdistributioner. Den �r generellt s�tt ett �r f�re den fria
 versionen. Just nu till exempel s� st�der den kommersiella Adobe
 Acrobat's Portable Document Format, medan den �ldre inte g�r det.

 Den fria versionen av Ghostscript �r GNU Ghostscript, och �r helt
 enkelt en �ldre version av Aladdin ghostscript som v�nligt sk�nkts
 till GNU. (Heder till Aladdin f�r detta arrangemang; flera
 mjukvaruf�retag borde st�da free software p� detta s�tt).


 Vad du �n g�r med gs, var riktigt s�ker p� att det k�rs med argumentet
 f�r att om�jligg�ra filaccess (-dSAFER). PostScript �r ett komplett
 programspr�k, och ett d�ligt PostScript program skulle kunna ge dig en
 rej�l huvudv�rk.

 P� tal om PDF, Adobe's Portable Document Format �r faktiskt inte
 mycket mer �n organiserad PostScript i en komprimerad fil. Ghostscript
 kan hantera PDF precis som PostScript. S� du kan bli den f�rsta i ditt
 kvarter med en PDF kapabel skrivare.

 10.1.  Anropa Ghostscript

 Vanligtvis k�rs ghostscript av vilket magic filter du �n anv�nder, men
 i debuggingsyfte �r det ofta l�mpligt att k�ra det direkt.

 gs -help ger dig en kort informativ lista p� argument och tillg�ngliga
 drivrutiner (observera att listan med drivrutiner �r inkompilerad, och
 inte huvudlistan p� alla tillg�ngliga drivrutiner).

 Du kan k�ra gs i testsyfte som: gs options -q -dSAFER
 -sOutputFile=/dev/lp1 test.ps.


 10.2.  Ghostscript output justering

 Det finns flera saker du kan g�ra om inte gs�s output blir till
 bel�tenhet (faktisk, kan du g�ra vad f..n som helst eftersom du har
 k�llkoden).


 10.2.1.  Output placering och storlek

 Placering, storlek och utseende av en bild p� en sida kontrolleras av
 de skrivarspecifika drivrutinen i ghostscript. Om utskriften p� dina
 sidor blir f�r hoptryckt och kort, eller utdragen och l�ng, eller f�r
 stor med en faktor tv�, b�r du titta i din drivrutins k�llkod och
 justera vilka parametrar du �n hittar. Olyckligtvis �r alla
 drivrutiner olika, s� jag kan inte ber�tta vad du skall justera, men
 de flesta �r skapligt kommenterade.


 10.2.2.  Gamma, punktstorlekar, etc.

 De flesta icke-laser skrivare lider av det faktum att deras punkter �r
 relativt stora. Detta resulterar i att bilder blir f�r m�rka. Om du
 upplever detta problem skall du anv�nda din egen �verf�ringsfunktion.
 Skapa f�ljande fil i ghostscripts lib-katalog och l�gg dess namn till
 gs anropet f�re sj�lva filen. Du m�ste kanske finjustera v�rdena f�r
 att passa din skrivare. L�gre v�rden resulterar i ljusare utskrift.
 Framf�r allt om din skrivare anv�nder en Floyd-Steinberg algoritm f�r
 att rastera f�rger �r troligen l�gre v�rden ( 0.2 - 0.15 ) ett bra
 val.



      ---8<---- gamma.ps ----8<---
      %!
      %transfer functions for cyan magenta yellow black
      {0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
      ---8<------------------8<---






 Det �r ocks� m�jligt att fixa skrivare som har n�got typ av f�rgfel
 genom att justera dessa v�rden. Om du g�r n�got s�dant rekommenderar
 jag att du anv�nder filen colorcir.ps, som finns med ghostscript (i
 examples/ katalogen), som en provsida..


 11.  Hur man skriver ut p� en skrivare �ver n�tverket

 En av finesserna med lpd �r att den st�der utskrift �ver n�tverket
 till skrivare fysiskt anslutna  till en annan maskin. Med en noggran
 kombination av filter scripts och tillh�rande program kan du anv�nda
 lpd till att p� ett raktframt s�tt skriva ut p� skrivare anslutna till
 alla sorters n�tverk.


 11.1.  Till en Unix/lpd v�rd

 F�r att l�ta andra maskiner skriva till din skrivare m�ste du lista
 dem i /etc/hosts.equiv eller /etc/hosts.lpd.  (Observera att
 hosts.equiv medf�r andra effekter, var s�ker p� att du vet vad du g�r
 innan du listar n�gon maskin d�r). Du kan till�ta bara vissa anvndare
 p� andra maskiner att skriva till din skrivare genom att anv�nda rs
 attributet; l�s lpd manualsidan f�r information om detta.


 11.1.1.  Med  lpd

 F�r att skriva ut till en annan maskin skapar du en /etc/printcap post
 som denna:


      # REMOTE djet500
      lp|dj|deskjet:\
              :sd=/var/spool/lpd/dj:\
              :rm=machine.out.there.com:\
              :rp=printername:\
              :lp=/dev/null:\
              :sh:




 Observera att det fortfarande finns en spoolkatalog p� den lokala
 maskinen som hanteras av lpd. Om den andra maskinen �r upptagen eller
 offline kommer utskriftsjobben att v�nta i spoolkatalogen tills de kan
 s�ndas.


 11.1.2.  Med rlpr

 Du kan ocks� anv�nda rlpr f�r att skicka ett utskriftsjob direkt till
 en k� p� en annan maskin utan att beh�va g� igenom kr�nglet med att
 konfigurera lpd f�r att fixa det. Detta �r anv�ndbart framf�r allt d�
 du skriver till olika skrivare bara n�gon enstaka g�ng. Fr�n
 introduktionen av rlpr:


 Rlpr anv�nder TCP/IP f�r att skicka utskriftsjobb till lpd servrar var
 som helst i ett n�tverk.


 Till skillnad fr�n lpr kr�ver rlpr *inte* att den andra skrivaren �r
 k�nd f�r maskinen som du vill skriva fr�n (t.ex. genom /etc/printcap)
 och kan d�rf�r anses vara mer flexibel och kr�ver mindre
 administration.

 rlpr kan anv�ndas �verallt d�r traditionell lpr kan anv�ndas och �r
 bak�tkompatibel med traditionell BSD lpr.


 Den st�rsta styrkan med rlpr �r f�rm�gan att skriva ut p� fj�rrenheter
 *fr�n var-som-helst till var-som-helst* utan att bry sig om hur det
 andra systemet du vill skriva ut fr�n �r konfigurerat. Kan anv�ndas
 som ett filter precis som traditionell lpr s� att klienter som k�rs p�
 en avl�gsen maskin som netscape, xemacs, etc, etc kan skriva ut till
 din maskin med sm� anstr�ngningar.

 Rlpr finns tillg�ngligt fr�n SunSite
 <ftp://sunsite.unc.edu/pub/Linux/system/printing/>.


 11.2.  Till en  Win95, WinNT, LanManager, eller Samba skrivare

 Det finns en Print to Windows mini-HOWTO d�r ute som inneh�ller mer
 info om detta �n vad som finns h�r.

 Det �r m�jligt att leda en lpd k� genom smbclient programmet (en del
 av samba-sviten) till en TCP/IP baserad SMB print service. Samba
 inkluderar ett script f�r detta som kallas smbprint.  Kortfattat g�r
 det till s� att du l�gger en konfigurationsfil f�r skrivaren i fr�ga i
 spool katalogen och installerar smbprint scriptet som if.

 /etc/printcap posten ser ut s� h�r:


      lp|remote-smbprinter:\
          :lp=/dev/null:sh:\
          :sd=/var/spool/lpd/lp:\
          :if=/usr/local/sbin/smbprint:




 Du skall l�sa dokumentationen i smbprint scriptet f�r ytterligare
 information om hur du konfigurerar detta.

 Du kan ocks� anv�nda smbclient f�r att s�nda en fil direkt till ett
 SMB printing system utan att blanda in lpd.  Se manualsidan.


 11.3.  Till en NetWare Printer

 ncpfs sviten inkluderar en funktion som kallas nprint som
 tillhandah�ller samma funktion som smbprint fast for NetWare. Du kan
 skaffa ncpfs fr�n SunSite.  Utdrag ur LSM posten f�r version 0.16:


      With ncpfs you can mount volumes of your netware server
      under Linux. You can also print to netware print queues and
      spool netware print queues to the Linux printing system. You
      need kernel 1.2.x or 1.3.54 and above. ncpfs does NOT work
      with any 1.3.x kernel below 1.3.54.



 F�r att f� nprint att fungera via lpd m�ste du skriva ett litet script
 som skriver stdin p� NetWare skrivaren och installera detta som if
 till en lpd skrivark�. Du f�r n�got som liknar:




 sub2|remote-NWprinter:\
         :lp=/dev/null:sh:\
         :sd=/var/spool/lpd/sub2:\
         :if=/var/spool/lpd/nprint-script:




 nprint-scriptet borde se ut ungef�r s� h�r:


      #! /bin/sh
      # You should try the guest account with no password first!
      /usr/local/bin/nprint -S net -U name -P passwd -q printq-name -





 11.4.  Till en EtherTalk (Apple) skrivare

 Netatalk paketet inneh�ller n�gonting som liknar nprint och smbclient.
 Andra har dokumenterat proceduren f�r att skriva till och fr�n ett
 Apple n�tverk mycket b�ttre �n vad jag n�gonsin kommer att g�ra, se
 Linux Netatalk-HOWTO <http://thehamptons.com/anders/netatalk/>.



 11.5.  Till en HP eller annan ethernet skrivare

 HP och n�gra andra skrivare levereras med ett ethernet interface som
 du kan skriva till direkt med lpd. Du skall f�lja instruktionerna som
 f�ljer skrivaren eller dess n�tverskadapter. Generellt sett "k�r"
 dessa skrivare lpd och har en eller flera k�er till vilka du kan
 skriva. En HP, till exempel, borde fungera med en printcap post som:


      lj-5|remote-hplj:\
              :lp=/dev/null:sh:\
              :sd=/var/spool/lpd/lj-5:\
              :rm=printer.name.com:rp=raw:




 HP Laserjet skrivare med Jet Direct interfaces har vanligtvis tv�
 stycken inbyggda lpd k�er - "raw" som accepterar PCL (och m�jligtvis
 PostScript) och "text" som accepterar ren ascii (och hanterar
 automatiskt trappstegseffekten). Om du har en JetDirect Plus3 tre-
 portsburk, heter k�erna "raw1", "text2", o.s.v.

 I en storskalig milj�, framf�r allt d�r inte alla skrivare st�der
 PostScript, kan det vara l�mpligt att utse en speciell skrivarserver
 till vilken alla maskiner skriver och p� vilken alla ghostscript jobb
 k�rs.

 Detta l�ter ocks� din Linuxburk att agera som en spool server till
 skrivaren s� att dina n�tverksanv�ndare snabbt kan avsluta sina
 utskriftsjobb och fors�tta med annat utan att v�nta p� att skrivaren
 skall skriva ut n�got som n�gon annan har skickat.

 F�r att �stadkomma detta, s�tt upp en k� p� din Linuxburk som pekar p�
 den ethernetutrustade HP LJ (som ovan). Sen konfigurerar du alla
 klienter p� ditt LAN att skriva till denna k� (ex. lj-5 i exemplet
 ovan).

 Till en del HP n�tverksskrivare beh�ver troligen inte
 f�rs�ttsbladsinst�llningen skickas av klienterna, du kan st�nga av
 deras internt genererade f�rs�ttsblad genom att 'telnetta' till
 printern, trycka retur tv� g�nger, skriva "banner: 0" f�ljt av "quit".
 Det finns flera inst�llningar som du kan �ndra p� detta vis, skriv "?"
 f�r att se en lista.


 11.5.1.  Till �ldre HPs

 En del skrivare (och skrivarrutiner i n�tverk som "black boxes")
 st�der bara ett d�ligt litet icke-protokoll med rena TCP anslutningar.
 Att m�rka i denna kategori �r tidiga JetDirect (inkluderande en del
 JetDirectEx) kort. Kortfattat, f�r att skriva till skrivaren m�ste du
 �ppna en TCP anslutning till skrivaren p� en speciell port (vanligtvis
 9100 eller 9100, 9101, 9102 f�r tre-ports) och stoppa in ditt
 utskriftsjobb i skrivaren. Detta kan, bland annat, implementeras med
 Perl:
















































 #!/usr/bin/perl
 # Thanks to Dan McLaughlin for writing the original version of this
 # script (And to Jim W. Jones for sitting next to Dan when writing me
 # for help ;)

 $fileName = @ARGV[0];

 open(IN,"$fileName") || die "Can't open file $fileName";

 $dpi300     = "\x1B*t300R";
 $dosCr      = "\x1B&k3G";
 $ends = "\x0A";

 $port =  9100 unless $port;
 $them = "bach.sr.hp.com" unless $them;

 $AF_INET = 2;
 $SOCK_STREAM = 1;
 $SIG{'INT'} = 'dokill';
 $sockaddr = 'S n a4 x8';

 chop($hostname = `hostname`);
 ($name,$aliases,$proto) = getprotobyname('tcp');
 ($name,$aliases,$port) = getservbyname($port,'tcp')
     unless $port =~ /^\d+$/;;
 ($name,$aliases,$type,$len,$thisaddr) =
         gethostbyname($hostname);
 ($name,$aliases,$type,$len,$thataddr) = gethostbyname($them);
 $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
 $that = pack($sockaddr, $AF_INET, $port, $thataddr);

 if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) {
 #    print "socket ok\n";
 }
 else {
     die $!;
 }
 # Give the socket an address.
 if (bind(S, $this)) {
 #    print "bind ok\n";
 }
 else {
     die $!;
 }

 # Call up the server.

 if (connect(S,$that)) {
 #    print "connect ok\n";
 }
 else {
     die $!;
 }

 # Set socket to be command buffered.

 select(S); $| = 1; select(STDOUT);

 #    print S "@PJL ECHO Hi $hostname! $ends";
 #    print S "@PJL OPMSG DISPLAY=\"Job $whoami\" $ends";
 #    print S $dpi300;

 # Avoid deadlock by forking.

 if($child = fork) {
     print S $dosCr;
     print S $TimesNewR;

     while (<IN>) {
         print S;
     }
     sleep 3;
     do dokill();
 } else {
     while(<S>) {
         print;
     }
 }

 sub dokill {
     kill 9,$child if $child;
 }





 11.6.  K�ra ett if  f�r fj�rrskrivare

 En underlighet men lpd �r att if inte k�rs f�r fj�rranslutna skrivare.
 Om du finner att du beh�ver k�ra ett if, s� kan du g�ra detta genom
 att konfigurera en dubbel k� och k�a om jobbet. Som ett exempel
 studera f�ljande printcap:


      lj-5:\
              :lp=/dev/null:sh:\
              :sd=/var/spool/lpd/lj-5:\
              :if=/usr/lib/lpd/filter-lj-5:
      lj-5-remote:lp=/dev/null:sh:rm=printer.name.com:\
              :rp=raw:sd=/var/spool/lpd/lj-5-raw:




 belyst av detta filter-lj-5 script:


      #!/bin/sh
      gs <options> -q -dSAFER -sOutputFile=- - | \
              lpr -Plj-5-remote -U$5




 Argumentet -U till lpr fungerar bara om lpr k�rs som en daemon och
 s�tter beg�rarens namn f�r jobbet i den andra k�n p� r�tt s�tt. Du b�r
 anv�nda en mer rubust metod f�r att f� anv�ndarnamnet eftersom det i
 vissa fall inte �r argument 5. Se manualsidan f�r printcap.


 11.7.  Fr�n Windows.

 Att skriva fr�n en Windows (eller f�rmodligen OS/2) klient till en
 Linuxserver �r direkt st�dd �ver SMB genom anv�ndande av SAMBA
 paketet, som dessutom st�der fildening av ditt Linux filsystem till
 Windowsklienter.

 Samba inkluderar en ganska komplett dokumentation, och det finns en
 bra Samba FAQ som ocks� t�cker det. Du kan antingen konfigurera ett
 magic filter p� Linuxburken och skriva PostScript till detta eller
 springa runt och installera skrivarspecifica drivrutiner p� alla
 Windowmaskiner och ha en k� f�r dem utan n�got filter. Att f�rlita sig
 p� Windows drivrutiner kan i en del fall leda till b�ttre utskrifter,
 men ar mer administrativt kr�vande om det �r m�nga Windowsmaskiner. Du
 b�r testa PostScript f�rst.


 11.8.  Fr�n en Apple.

 Netatalk st�der utskrift fr�n Apple klienter �ver EtherTalk. Se
 Netatalk HOWTO Page <http://thehamptons.com/anders/netatalk/> f�r mer
 information.


 11.9.  Fr�n Netware.

 ncpfs paketet inkluderar en daemon som heter pserver som kan anv�ndas
 till att serva en NetWare skrivark�. Vad jag har f�rst�tt kr�ver ett
 s�dant system "Bindery-Based NetWare" d.v.s. 2.x, 3.x eller 4,x med
 "bindery access" aktiverad.

 F�r ytterligare information om ncpfs och dess pserver progam, se the
 ncpfs FTP site <ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/>.


 12.  Windows-only skrivare

 Som jag tidigare n�mnt �r en del skrivare i sig inte st�dda i Linux
 eftersom de inte talar normalt skrivarspr�k utan ist�llet anv�nder
 datorns CPU f�r att skapa bitmappar som sedan skickas till skrivare i
 en best�md hastighet. I n�gra f� fall talar dessa skrivare ocks� n�got
 normalt, som PCL, men oftast inte. I en del (verkligt l�gklass) fall
 anv�nder inte skrivaren ens en normal parallellanslutning utan
 f�rlitar sig p� att tillverkarens drivrutin skall emulera hur
 h�rdvaran skall uppf�ra sig (det viktigaste �r handskakningen
 `handshaking').


 I alla fall, det finns n�gra f� trix att komma runt problemet om du
 har fastnat med en s�dan otrevlighet.



 12.1.  Ghostscripts Windowsbaserade omdirigerare

 Det finns nu en Windows skrivardrivrutin tillg�nglig (heter mswinpr2)
 som k�r ett skrivarjobb genom Ghostscript innan det slutligen skriver
 ut det. (Ist�llet f�r ett if filter i Unix's LPD). Det finns ocks� en
 ny Ghostscript drivrutin som skriver genom att anv�nda Windows GDI
 anrop. Tillsammans, b�r detta till�ta en Windows maskin att skriva
 PostScript till en Windows-only skrivare genom tillverkarens
 drivrutin.

 Om du f�r det att funka, kan du f�lja instruktionerna ovan f�r att
 skriva till en Windows skrivare �ver n�tverket fr�n Linux f�r att l�ta
 Unix (och andra Windows, Mac, etc) v�rdar att skriva till din
 otrevliga skrivare.

 Det skall s�gas att jag aldrig testat detta eftersom jag inte har
 n�gon Windowsskrivare, s� du f�r testa sj�lv. All inblandad mjukvara
 skall g� att hitta p� Ghostscript's hemsida (se l�nkarna i
 Ghostscriptavsnittet i detta dokument).





 12.2.  Programmet pbm2ppa

 En del HP skrivare anv�nder "Printing Performance Architecture"
 (marknadsf�ringsspr�k f�r "vi �r f�r billiga f�r att implementera
 PCL"). Detta st�ds via en omv�g �ver pbm2ppa �vers�ttaren, skriven av
 Tim Norman. Vanligtvis anv�nder du Ghostscript f�r att �vers�tta
 PostScript till en bitmappad bild i pbm format och sedan anv�nder
 pbm2ppa f�r att �vers�tta denna till ett skrivarspecifikt ppa format
 klart f�r att dumpas till skrivaren. Detta program kan ocks� ha kommit
 i en Ghostscript drivare vid det h�r laget.


 ppa mjukvaran kan h�mtas fr�n the ppa home page
 <http://www.rpi.edu/~normat/technical/ppa/>. pbm2ppa st�der en del
 modellar av HP 720, 820, och 1000; l�s dokumentationen som f�ljer med
 paketet f�r detaljer om ppa skrivarst�d.



 13.  Hur skriver man ut till en fax.

 13.1.  Med ett faxmodem

 Det finns ett flertal faxprogram d�r ute som l�ter dig faxa och ta
 emot dokument. Ett av de mest komplexa �r Sam Leffler's HylaFax,
 tillg�ngligt fr�n ftp.sgi.com. Det st�der allt fr�n flera modem till
 broadcasting (=s�nda till flera samtidigt).

 SuSE levererar en Java HylaFax klient som p�st�s fungera p� vilken
 Java plattform som helst (inkluderande Windows och Linux). Det finns
 ocks� icke-Java fax klienter till de flesta plattformar, Linux kan med
 st�rsta sannolikhet hantera dina n�tverks fax behov.

 Dessutom finns, och ett b�ttre val f�r de flesta Linuxburkar, efax,
 ett enkelt program som skickar fax. Getty-programmet mgetty kan ta
 emot fax (och till och med voicemail p� en del modem!).


 13.2.  Anv�nda Remote Printing Service

 Det finns en experimentell service som l�ter dig s�nda ett e-
 postmeddelande som inneh�ller det du vill skriva ut p� en fax
 n�gonstans. Trevliga format som postscript st�ds, s� �ven om global
 t�ckning �r gles kan detta vara en anv�ndbar service. F�r ytterligare
 information om att skriva ut till en fax via remote printing service,
 se Remote Printing WWW Site <http://www.tpc.int/>.



 14.  Hur generar jag n�got v�rt att skriva ut.

 H�r g�r vi in i ett riktigt r�ttbo av mjukvara. Normalt kan Linux k�ra
 flera typer av bin�rfiler med varierande grad av framg�ng: Linux/x86,
 Linux/Alpha, Linux/Sparc, Linux/foo, iBCS, Win16/Win32s (med dosemu
 och, n�gon dag, med Wine), Mac/68k (med Executor), och Java. Jag
 kommer bara att ta upp rena Linux och vanliga Unix program.

 Till Linux sj�lvt faller valet oftast begr�nsat till de program som
 normalt finns till Unix:


 14.1.  Markeringsspr�k (Markup languages)

 De flesta markeringsspr�k passar b�st till stora eller repetitiva
 projekt d�r du vill att datorn skall ta hand om layouten av texten f�r
 att g�ra den enhetlig. Att f�rs�ka g�ra ett snyggt tecken i ett
 markeringspr�k kommer f�rmodligen att g�ra ont...


    nroff
       Detta var ett av de f�rsta markeringsspr�ken till Unix.
       Manualsidorna �r de vanligaste exemplen p� jobb som formaterats
       med *roff macros; m�nga �lskar dem, men nroff har, �tminstone
       f�r mig, en kr�ngligare syntax �n n�dv�ndigt, och �r f�rmodligen
       ett d�ligt val  f�r nya arbeten. Det �r dock v�rt att veta att
       du kan typs�tta en manualsida direkt till postscript med groff.
       De flesta man kommandon g�r det �t dig med man -t foo | lpr.


    TeX
       TeX, och macropaketet LaTeX, �r en av de mest anv�nda
       markeringsspr�ken anv�nda i Unix. Tekniska arbeten skrivs ofta i
       LaTeX eftersom det verkligen underl�ttar layoutproblem och �r
       forfarande ett av de f� ordbehandlar system som st�der matematik
       b�de komplett och bra. TeX's output format �r dvi, som
       konvereras till PostScript eller Hewlett Packard's PCL med dvips
       eller dvilj.


    SGML
       Det finns �tminstone en fri sgml analyserare f�r Unix och Linux;
       den formar grunden f�r Linuxdoc-SGML's egna dokumentsystem. Det
       kan st�dja andra DTD�s (dokument-typ-deklarationer) ocks�.


    HTML
       N�gon f�reslog att man f�r enkla projekt kan skriva i HTML och
       sedan skriva ut med Netscape. Jag h�ller inte med, men det st�r
       f�r mig.


 14.2.  WYSIWYG Ordbehandlare

 Det �r inte l�ngre n�gon brist p� WYSIWYG ordbehandlings mjukvara.
 Flera kompletta Office paket finns tillg�ngliga. Ett av dem �r gratis
 f�r personligt bruk (StarOffice).

    StarOffice
       Ett tyskt f�retag distribuerar StarOffice p� Internet gratis f�r
       Linux. Detta fullfj�drade office paket har allt du kan f�rv�nta
       dig, och du sl�r inte priset. Det finns en mini-HOWTO d�r ute
       som beskriver hur du skaffar och installerar det. Det generear
       PostScript eller PCL s� det fungerar med i stort s�tt alla
       skrivare som normalt fungerar med Linux.

    LyX
       LyX �r ett skal till LaTeX som verkar mycket lovande. Se the LyX
       Homepage <http://www.lyx.org/> f�r mer information. Det finns en
       KDE version av LyX som heter KLyX. F�rfattaren till Lyx och
       upphovsmannen till KDE �r samma person.

    The Andrew User Interface System
       AUIS inkluderar ez, en WYSIWYG-liknande editor med de vanligaste
       ordbehandlings tillbeh�ren, HTML kapabilitet coh full MIME e-
       post och newsgroup st�d. Tyv�rr underh�lls inte AUIS l�ngre.

    Koffice
       The KDE project arbetar p� en hel office svit. Jag tror inte att
       den �r redo f�r att presenteras �nnu.

    GNOME
       The GNOME project arbetar ocks� p� n�gra GNU-licensierade
       office-verktyg. Inget finns tillg�ngligt �nnu, dock.

    Kommersiella alternativ
       �tminstone Caldera och Red Hat s�ljer programpaket inneh�llande
       de vanliga office applikationerna som en WYSIWYG ordbehandlare
       och ett kalkylprogram. Jag antar att de g�r ett snyggt jobb, men
       jag har aldrig testat dem. Jag tror att Caldera s�ljer Sun's
       WABI ocks�, s� du kan f�rmodligen k�ra n�gonting som MS Office
       under det om du m�ste integrera med andras filer.


       Jeff Phillips <jeff@I_RATUS.org> anv�nder Caldera's WordPerfect
       f�r Linux (p� Slackware, av alla) och s�ger att det fungerar
       bra. Det inkluderar tydligen inbyggt skrivarst�d, som man borde
       f�rv�nta sig. Caldera borde ha mer information p�
       <http://www.caldera.com/>. Du kan ocks� k�pa en nyare version av
       WordPerfect direkt fr�n en av Corels utvalda Unix
       �terf�rs�ljare.


       RedHat och SuSE levererar ett paket som heter Applixware; du
       hittar deras hemsida p�  <http://www.redhat.com/>. Applix finns
       tillg�nglig till m�nga plattformar och inkluderar,
       kalkylprogram, ordbehandlingsprogram, presentationspaket, osv.
       Det finns en separat version av Applix tillg�nglig i Java som
       heter ApplixAnyWhere, jag antar att den �r ganska lika som den
       andra men l�ngsammare och med mindre finesser.


       Andra handlare kan g�rna skicka mig en rad med deras
       erbjudanden.



 15.  F�rhandsgranskning av utskrivbara saker p� sk�rmen.

 N�stan allt du kan skriva ut kan ocks� f�rhandsgranskas p� sk�rmen.

 15.1.  PostScript

 Ghostscript har en X11 drivrutin som fungerar b�st under kontroll av
 PostScript f�rhandsgranskaren Ghostview. De senaste versionerna av
 dessa program borde kunna visa PDF filer ocks�. M�rk att gv har bytt
 ut den gamla f�rhandsgranskaren "Ghostview", det nya
 anv�ndargr�nssnittet �r mycket snyggare och har mer finesser �n det
 enkla gamla Athena gr�nssnittet.


 15.2.  TeX dvi

 TeX DeVice Independant filer kan f�rhandsgranskas under X11 med xdvi.
 Moderna versioner av xdvi anropar ghostscript f�r att rendera
 PostScript specialare.

 En VT100 drivrutin finns ocks�. Den heter dgvt. Tmview fungerar med
 Linux och svgalib, om det �r allt du kan �stadkomma.


 15.3.  Adobe PDF

 Adobe's Acrobat Reader finns till Linux; ladda bara hem den fr�n deras
 hemsida  <http://www.adobe.com/>.

 Du kan �ven anv�nda xpdf, som �r freeware och levereas med k�llkod,
 och jag tror att Ghostview st�der visning av PDF filer med gs under
 X11 vid den h�r tiden.
 16.  Seriella skrivare under lpd

 16.1.  Konfigurera i printcap

 Lpd tillhandah�ller fem attribut vilka du kan s�tta i /etc/printcap
 f�r att styra inst�llningarna av den seriella port som skrivaren
 sitter p�. L�s printcap manualsidan och notera betydelsen av br#, fc#,
 xc#, fs# och xs#. De siste fyra av dessa attribut �r bitmaps som
 indikerar inst�llningarna f�r att anv�nda porten. Till exempel br#
 atrributet �r helt enkelt baudtalet t.ex. `br#9600'.


 Det �r v�ldigt enkelt att �vers�tta fr�n stty inst�llningar till
 printcap argumentinst�llningar. Om du beh�ver, titta i manualsidan f�r
 stty nu.


 Anv�nd stty f�r att konfigurera skrivarporten s� att du kan `cat' en
 fil till den och den skrivs ut korrekt. D� h�r ser `stty -a' ut f�r
 min skrivarport:


      dina:/usr/users/andy/work/lpd/lpd# stty -a < /dev/ttyS2
      speed 9600 baud; rows 0; columns 0; line = 0;
      intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
      eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
      lnext = ^V; min = 1; time = 0;
      -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
      -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr
      -igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel
      -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0
      bs0 vt0 ff0
      -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase
      -tostop -echoprt -echoctl -echoke




 De enda skillnaderna mellan denna och det s�tt porten initieras vid
 systemstarten �r -clocal, -crtscts, och ixon. Din port kan vara annor�
 lunda beroende p� hur din skrivare g�r fl�deskontroll.


 Du anv�nder faktiskt stty p� ett p� n�gotvis udda s�tt. Eftersom stty
 k�r mot terminalen som �r kopplad till dess standard input, anv�nder
 du det till manipulera en given serieport genom att anv�nda tecknet
 `<' enligt ovan.


 N�r du v�l f�tt stty inst�llningarna r�tt, s� att `cat fil >
 /dev/ttyS2' (i mitt fall) s�nder filen till skrivaren, tittar du i
 filen /usr/src/linux/include/asm-i386/termbits.h. Denna inneh�ller en
 en hel del #defines och n�gra structs. (Du kanske vill `cat'a denna
 fil till skrivaren (det funkar ju nu, eller hur?) och anv�nda den som
 ett kladdpapper) G� till sektionen som b�rjar med



      /* c_cflag bit meaning */
      #define CBAUD   0000017




 Denna sektion listar betydelsen av fc# och fs# bitarna. Du kommer att
 m�rka att namnen d�r (efter baudtalen) matchar en av raderna av stty
 output. Sa jag inte att detta skulle bli enkelt?


 Notera vilken av inst�llningarna som inleds med ett - i din stty
 output. Summera ihop alla dessa siffror (de �r oktala). Detta
 representerar de bitar som du vill "clear"a, s� resultatet �r din fc#
 m�jlighet. Naturligvis, kom ih�g att du kommer att s�tta dessa bitar
 direkt efter du har "clear"at, s� du kan anv�nda `fc#0177777' (Det g�r
 jag).


 Nu g�r du detsamma f�r inst�llningarna (listade i denna sektion) som
 inte har ett - f�re dem i din stty output. I mitt exempel �r de
 viktiga CS8 (0000060), HUPCL (0002000), och CREAD (0000200). Notera
 ocks� argumenten f�r ditt baudtal (mitt �r 0000015). L�gg ihop dessa,
 och i mitt exempel f�r du 0002275. Det skall in i din fs# m�jlighet
 (`fs#02275' funkar bra i mitt exempel).


 G�r samma sak med set och clear f�r n�sta sektion av include filen,
 "c_lflag bits". I mitt fall beh�vde jag inte "set"a n�got s� jag
 anv�nde bara `xc#0157777' och `xs#0'.


 16.2.  �ldre seriella skrivare som tappar tecken

 Jon Luckey pekar ut att n�gra �ldre seriella skrivare med billiga
 seriella interface och sm� buffers verkligen menar stopp n�r de s�ger
 s� med fl�deskontrollen. Han kom p� att st�nga av FIFO'n p� hans
 Linuxburks 16550 serieportar med setserial fixade problemet med
 tappade tecken (du till synes bara specificerar uart typen till 8250
 f�r �stadkomma detta).


 17.  Tack till

 smbprint informationen �r fr�n en artikel av Marcel Roelofs
 <[email protected]>.


 nprint informationen f�r att anv�nda Netware skrivare tillhandah�lls
 av Michael Smith <[email protected]>.


 Seriella skrivare under lpd sektionen �r fr�n Andrew Tefft
 <[email protected]>.


 Stoffet om gammas och s�dant f�r gs skickades in av Andreas
 <[email protected]>.


 De tv� paragraferna om 30 sekunders closing_wait f�r den seriella
 drivrutinen tillhandah�lls av Cris Johnson <[email protected]>.


 Robert Hart skickade in n�gra utm�rkta paragrafer om konfigureringen
 av en utskriftsserver till n�tverks HPs som jag anv�nde ordagrant.


 Och speciellt tack till er dussin p� dussin som p�pekat stavfel,
 brustna URL:er och fel i dokumentet �ver �ren.