Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d667a145d78a93cee78c5358ca99c039 > files > 108

howto-text-nl-2006-5mdv2010.0.noarch.rpm

  De Linux Afdruk HOWTO
  Grant Taylor <gtaylor+pht@picante.com>
  Vertaald door: Ellen Bokhorst bokkie@nl.linux.org
  Versie 3.30, 19/11/1999 06:00:35

  Dit is de Linux Afdruk HOWTO, een verzameling met informatie over hoe
  je alle afdrukken onder Linux (en andere Unices in het algemeen) kunt
  genereren, bekijken en faxen.
  ______________________________________________________________________

  Inhoudsopgave























































  1. Introductie

     1.1 Historie
     1.2 Copyright

  2. Hoe af te drukken

  3. Kernel afdrukapparaten

     3.1 Het lp device (kernels <=2.1.32)
     3.2 Het parport-device (kernels >= 2.1.33)
     3.3 Seriële devices

  4. Ondersteunde Printers

     4.1 Postscript
     4.2 Niet-Postscript
     4.3 Welke printers werken?
        4.3.1 Printer compatibiliteitenlijst
     4.4 Hoe koop je een printer?

  5. Welke spooling software?

  6. Hoe het werkt, basis

  7. Hoe zaken in te stellen, basis

     7.1 Traditionele lpd configuratie
     7.2 Bestandspermissies

  8. Verkrijgen van Afdruksoftware

  9. Verkopers Oplossingen

     9.1 Red Hat
     9.2 Debian
     9.3 Andere Distributies

  10. Ghostscript

     10.1 Ghostscript Aanroepen
     10.2 Ghostscript uitvoer fijnafstemmen
        10.2.1 Uitvoer lokatie en grootte
        10.2.2 Gamma, dotsizes, enz.

  11. Hoe afdrukken naar een printer over het netwerk

     11.1 Naar een Unix/lpd host
        11.1.1 Met
        11.1.2 Met
     11.2 Naar een Win95, WinNT, LanManager, of Samba printer
     11.3 Naar een NetWare Printer
     11.4 Naar een EtherTalk (Apple) printer
     11.5 Naar een HP of andere ethernet printer
        11.5.1 Naar oudere HP's
     11.6 Een
     11.7 Vanaf Windows
     11.8 Vanaf een Apple
     11.9 Vanaf Netware

  12. Printers die alleen voor Windows zijn bestemd

     12.1 De Ghostscript Windows redirector
     12.2 Lexmarks
     12.3 Het pbm2l7k programma

  13. Hoe naar een fax machine af te drukken

     13.1 Een faxmodem gebruiken
     13.2 Gebruiken van Remote Printing Service

  14. Hoe genereer je iets dat waard is om af te drukken

     14.1 Markup languages
     14.2 WYSIWYG Tekstverwerkers

  15. Van te voren op scherm bekijken van afdrukbare zaken

     15.1 PostScript
     15.2 TeX dvi
     15.3 Adobe PDF

  16. Seriële printers onder lpd

     16.1 Instelling in printcap
     16.2 Oudere seriële printers die tekens weglaten

  17. Credits



  ______________________________________________________________________

  1.  Introductie

  In de Afdruk HOWTO zou alles moeten staan wat je moet weten om je op
  weg te helpen bij het instellen van afdrukservices op je Linuxbox(en).
  Het is echter gecompliceerder dan in de aanwijs-en-klik wereld van
  Microsoft en Apple, maar het is ook flexibeler, en zeker gemakkelijker
  te beheren voor groot opgezette LAN's.

  Dit document is zo opgezet dat de meeste mensen slechts ongeveer de
  eerste helft ervan nodig zullen hebben. Veel van de meer onbekende en
  situatie-afhankelijke informatie staat in het laatste gedeelte van dit
  document en kan eenvoudig worden opgezocht via de inhoudsopgave.
  Daarentegen zal waarschijnlijk bijna iedereen de meeste informatie uit
  paragraaf 9 of 10 nodig hebben.

  Aangezien versie 3.x volledig is herschreven, is veel van de
  informatie van vorige edities verloren gegaan. Dit komt door het
  ontwerp. De voorgaande HOWTO's hadden een grootte van ca 60 gedrukte
  pagina's en dit was niet prettig leesbaar.  Als je geen oplossing in
  dit document vindt voor de problemen die je ondervindt, word je
  aangemoedigd om a) de voorgaande versie door te nemen, te vinden bij
  de Printing HOWTO HomePage <http://www.picante.com/~gtaylor/pht/> en
  b) een bericht achter te laten, waarin je aangeeft wat in dit document
  zou moeten staan, maar er niet in staat.

  De Printing HOWTO Home Page <http://www.picante.com/~gtaylor/pht/> is
  een goede plek om naar de laatste versie te zoeken; het wordt
  natuurlijk ook gedistribueerd vanaf Metalab (metalab.unc.edu) en je
  vriendelijke lokale LDP mirror.

  1.1.  Historie

  Dit is de derde generatie van de Printing HOWTO, dus voor de derde
  keer compleet herschreven.  De historie van de PHT kan op deze manier
  te boek worden gesteld:

  1. Ik schreef de printing-howto in 1992 als reactie op de te vele
     vragen met betrekking tot het afdrukken in comp.os.linux en postte
     het.  Dit dateerde het HOWTO project voor een paar maanden
     vervroegd en was de eerste FAQlet die een `howto' werd genoemd.
     Deze uitgave was in plain ascii.

  2. Na me te hebben aangesloten bij het HOWTO-project, werd de
     Printing-HOWTO samengevoegd met een lpd FAQ van Brian McCauley
     <B.A.McCauley@bham.ac.uk>; we waren voor ongeveer twee jaar mede-
     auteur van de PHT.  Op een bepaald moment voegden we het samen met
     het werk van Karl Auer <Karl.Auer@anu.edu.au>. Deze generatie van
     de PHT was in TeXinfo, en beschikbaar in PS, HTML, Ascii, en Info.

  3. Na de PHT voor meer dan een jaar te hebben laten rotten en vallen,
     en een niet succesvolle poging om iemand anders te krijgen om het
     te beheren, vond deze omwerking plaats. Deze generatie van de PHT
     is geschreven in SGML door gebruik te maken van de LinuxDoc DTD en
     het SGML-Tools-1 package. Beginnend met versie 3.27, is het
     verenigd met een samenvatting van een bijbehorende
     printerondersteunings database; voor 3.27 stond er in deze HOWTO
     nooit een printer-compatibiliteitenlijst (!).

  1.2.  Copyright

  Dit document valt onder het Copyright (c) 1992-1999 door Grant Taylor.
  Voel je vrij dit document te kopiëren en te herdistribueren
  overeenkomstig de voorwaarden van de GNU General Public License,
  revisie 2 of later.

  2.  Hoe af te drukken

  Als je reeds lpd hebt ingesteld om naar je printer af te drukken, of
  je systeembeheerder heeft dit al gedaan, of je verkoper deed dit voor
  je, dan hoef je alleen nog te leren hoe je het commando lpr kunt
  gebruiken.  De Printing Usage HOWTO
  <http://metalab.unc.edu/LDP/HOWTO/Printing-Usage-HOWTO.html> gaat
  hierover, en een paar andere wachtrij-manipulatie-commando's die je
  waarschijnlijk zou moeten kennen.

  Als je echter een nieuw systeem of nieuwe printer hebt, dan zul je, op
  wat voor manier dan ook, je afdrukservices in moeten stellen voordat
  je af kunt drukken. Lees verder!

  3.  Kernel afdrukapparaten

  Er zijn twee compleet verschillende device-drivers voor de parallelle
  poort; welke je gebruikt is afhankelijk van je kernelversie (je kunt
  achter je versie komen via het commando uname -a). De driver is in
  Linux 2.1.33 gewijzigd.

  Een paar details zijn hetzelfde voor beide stijlen drivers.  Hetgeen
  veel mensen hebben gemerkt, is dat Linux hun parallelle poort niet zal
  detecteren tenzij ze in hun PC BIOS "Plug en Play" de-activeren.  (Dit
  is geen verrassing; de waarnemingsreputatie van PnP of niet-PCI
  devices onder Windows en elders is een ramp gebleken).

  3.1.  Het lp device (kernels <=2.1.32)

  De Linux kernel (<=2.1.32), waarbij er van uit wordt gegaan dat je het
  lp device in hebt gecompileerd of geladen (in de uitvoer van cat
  /proc/devices zou het device lp voor moeten komen als het is geladen),
  voorziet in één of meer /dev/lp0, /dev/lp1, en /dev/lp2. Deze worden
  NIET dynamisch toegewezen, maar corresponderen ieder met een specifiek
  hardware I/O adres. Dit betekent dat je eerste printer, afhankelijk
  van je hardware, lp0 of lp1 kan zijn. Probeer gewoon beiden.

  Een paar gebruikers rapporteerden dat hun bi-directionele lp poorten
  niet werden gedetecteerd als zij een oudere uni-directionele
  printerkabel gebruikten. Controleer of je een behoorlijke kabel hebt.
  Men kan de plip en lp drivers niet tegelijkertijd op een gegeven poort
  gebruiken (in ieder geval niet onder 2.0). Je kunt echter de ene of de
  andere driver op ieder moment zowel handmatig hebben geladen als door
  kerneld met versie 2.x (en latere 1.3.x) kernels. Door zorgvuldig de
  interrupts en dergelijke in te stellen, kun je naar men mag aannemen
  plip op de ene poort en lp op de andere poort gebruiken.  Iemand deed
  dit door de drivers te wijzigen; Ik wacht met spanning op een
  succesvol rapport van iemand die dit slechts door middel van een
  slimme commando-regel doet.

  Er is een kleine utility met de naam tunelp in omloop gebracht waar je
  het Linux 2.0 interrupt-gebruik, de polling-snelheid, en andere opties
  van het Linux 2.0 lp-device, als root, mee af kunt stellen.


  Als de lp-driver in de kernel is ingebouwd, zal de kernel een lp=
  optie accepteren om de interrupts en io-adressen in te stellen:


       Als de lp driver in de kernel is ingebouwd, zou je de LILO/LOADLIN
       commando-regel kunnen gebruiken om de poortadressen en interrupts in te
       stellen, waarvan de driver gebruik zal gaan maken.

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

       Bijvoorbeeld:   lp=0x378,0   of   lp=0x278,5,0x378,7 **

       Merk op dat als dit kenmerk wordt gebruikt, je *alle* poorten die
       je zult gaan gebruiken, moet specificeren, er zijn geen standaards.
       Je kunt een ingebouwde driver met lp=0 de-activeren.




  Geladen als een module, is het mogelijk io-adressen en interrupts op
  de insmod commando-regel (of in /etc/conf.modules om kerneld te
  beïnvloeden) op te geven door gebruik te maken van de gebruikelijke
  argumentensyntax van een module. De parameters zijn
  io=port0,port1,port2 en irq=irq0,irq1,irq2. Lees de manpage van insmod
  voor meer informatie hierover.

  **Voor degenen onder jullie die (me aardig vinden) nooit de standaard
  poortnummers kunnen vinden als je ze nodig hebt, ze zijn als in het
  tweede voorbeeld hierboven.  De andere poort (lp0) bevindt zich op
  0x3bc. Ik zou niet weten van welk interrupt het gewoonlijk gebruik
  maakt.

  De source-code voor de Linux 2.0 parallelle poort-driver staat in
  /usr/src/linux/drivers/char/lp.c.

  3.2.  Het parport-device (kernels >= 2.1.33)

  Beginnend met kernel 2.1.33 (en beschikbaar als een patch voor kernel
  2.0.30), is het lp-device slechts een client van het nieuwe parport-
  device.  De aanvulling van het parport device corrigeert een aantal
  problemen die bij het oude lp-device optraden - het kan de poort met
  andere drivers delen, het wijst dynamisch beschikbare parallelle
  poorten toe aan device-nummers in plaats van dat het een vaste
  communicatie-verbinding tussen I/O adressen en poortnummers, enz.
  forceert.

  De komst van het parport-device heeft voor een hele schare nieuwe
  parallelle poortdrivers gezorgd, voor zaken als Zipdrives, Backpack
  CD-ROM's en disks, enzovoort. Een aantal hiervan zijn ook beschikbaar
  in versies voor 2.0 kernels; kijk hiervoor rond op het web.

  Het belangrijkste verschil dat je op zal vallen, zover het printen
  betreft is, dat kernels die op de parport zijn gebaseerd, de lp-
  devices dynamisch aan parallelle poorten toewijzen. Dus wat lp1 onder
  Linux 2.0 was, kan onder Linux 2.2 heel goed lp0 zijn. Zorg ervoor dat
  je dit controleert, als je een upgrade van een lp-driver-kernel naar
  een parport-driver-kernel uitvoert.

  Het meest voorkomende probleem dat zich met dit device schijnt voor te
  doen heeft te maken met een onjuiste configuratie:

     De Distributie
        Een aantal Linux-distributies worden met een onjuiste setup van
        /etc/modules.conf (of /etc/conf.modules) geleverd, waardoor de
        driver niet juist wordt geladen als je het nodig hebt. Met een
        recente modutils schijnen de juiste magische regels in
        modules.conf als volgt te moeten zijn:

        alias           /dev/printers   lp
        alias           /dev/lp*        lp
        alias   parport_lowlevel parport_pc



     De BIOS
        In de BIOS van veel PC's is de parallelle poort als een Plug &
        Play device ingesteld. Hiermee wordt het een perfect eenvoudig
        apparaat, dat bijna altijd aanwezig is, onnodig gecompliceerd
        gemaakt; schakel de PnP instelling voor je parallelle poort uit
        ("LPT1" in veel BIOS'sen) als je parallelle poort niet door de
        Linux-driver wordt herkend.  De juiste instelling wordt vaak
        "legacy", "ISA" of "0x378" genoemd, maar waarschijnlijk niet
        "disabled".


  Je kunt ook het bestand Documentation/parport.txt in je kernel sources
  lezen, of de parport website
  <http://www.cyberelk.demon.co.uk/parport.html> bekijken.

  3.3.  Seriële devices

  Seriële devices worden onder Linux iets dergelijks als /dev/ttyS1
  genoemd. Het utility stty staat je toe om de instellingen voor een
  seriële poort interactief te bekijken of in te stellen; setserial
  staat je toe een aantal uitgebreide kenmerken te beheren en IRQ's en
  I/O adressen te configureren voor de niet-standaard poorten.  Een
  verdere bespreking van seriële poorten onder Linux kun je vinden in de
  Serial-HOWTO <http://metalab.unc.edu/mdw/HOWTO/Serial-HOWTO.html>.

  Als je gebruik maakt van een langzame seriële printer met flow
  control, kan het zijn dat je bemerkt dat een aantal van je afdruktaken
  worden afgebroken. Dit kan te wijten zijn aan de seriële poort, wiens
  standaardgedrag is om alle niet verzonden tekens te wissen, die zich
  na 30 seconden nadat het poortdevice is gesloten nog in de buffer
  bevinden. De buffer kan 4096 tekens vasthouden. Als je printer flow
  control gebruikt en het langzaam is, kan het alle data uit de buffer
  niet binen 30 seconden nadat de afdruksoftware de seriële poort heeft
  gesloten, verwerken.  Het laatste deel van de inhoud van de buffer zal
  hierdoor verloren gaan.  Als het commando cat file > /dev/ttyS2 voor
  korte bestanden volledige afdrukken produceert, maar langere bestanden
  afbreekt, kan het zijn dat hiervan sprake is.

  De 30 seconden-interval kan via de commando-regeloptie "closing_wait"
  van setserial (versie 2.12 en later) worden aangepast.  De seriële
  poorten van een computer worden gewoonlijk door een aanroep van
  setserial in het opstartbestand rc.serial geïnitialiseerd.  De aanroep
  voor de seriële afdrukpoort kan worden gewijzigd door de closing_wait
  tegelijkertijd in te stellen met de andere parameters van de poort.

  4.  Ondersteunde Printers

  De Linux kernel ondersteunt in het algemeen iedere printer die je in
  een seriële of parallelle poort kunt pluggen, maar er zijn dingen om
  op te letten, en printers die je niet zult kunnen gebruiken, zelfs al
  kunnen ze (elektronisch gesproken) met Linux communiceren.
  Hoofdzakelijk bevinden zich tussen deze incompatibele printers,
  printers waarnaar als "Windows" of "GDI" printers wordt gerefereerd.
  Ze worden zo genoemd, omdat een deel of de gehele
  printerbesturingstaal en de ontwerpdetails van het afdrukmechanisme
  niet zijn gedocumenteerd.  De verkoper zal in een Windows-driver
  voorzien en met veel genoegen alleen aan Windows gebruikers verkopen;
  daarom worden ze Winprinters genoemd. In een aantal gevallen voorziet
  de verkoper ook in drivers voor NT, OS/2 of andere besturingssystemen.

  Veel van deze printers werken niet met Linux.  Een paar daarvan doen
  dit wel, en een aantal daarvan werken slechts een beetje (meestal
  omdat iemand aan de details, die nodig waren om een driver te
  schrijven, is gekomen, met behulp van reverse engineering).  Zie de
  printerondersteuningslijst hieronder voor details over specifieke
  printers.

  Een paar printers zitten daar tussenin.  Een aantal van de modellen
  van NEC implementeren bijvoorbeeld een eenvoudige vorm van de
  standaard printertaal PCL, waarmee met PCL-sprekende software is
  toegestaan tot 300dpi af te drukken, maar alleen NEC weet hoe het de
  volledige 600dpi uit deze printers kan halen.

  Merk op dat als je al één van deze Winprinters hebt, er omslachtige
  manieren zijn om het voor elkaar te krijgen dat Linux ernaar kan
  printen, maar ze veroorzaken nogal wat narigheid en ik heb het zelf
  nooit geprobeerd. Zie Sectie 12 van dit document voor een verdere
  bespreking van printers die alleen voor Windows zijn bestemd.

  4.1.  Postscript

  Voor wat betreft de printers die wel onder Linux werken, is de beste
  keuze een printer met ingebouwde PostScript ondersteuning te kopen.
  Bijna alle Unix software waarmee afdrukbare uitvoer wordt
  geproduceerd, produceert het in PostScript, dus uiteraard zou het fijn
  zijn om aan een printer te komen die PostScript direct ondersteunt.
  Helaas is de ondersteuning voor Postscript buiten het laserprinter
  domain schaars, en soms is het een kostbare uitbreiding.

  Unix software, en de publicerende industrie in het algemeen, hebben
  Postscript algemeen erkend als de printerbesturingstaal van hun keuze.
  Dit gebeurde om verscheidene redenen:

     Keuze van het tijdstip
        Postscript kwam als onderdeel van de Apple Laserwriter, een
        perfecte combinatie met de Macintosh, het systeem dat op grote
        schaal verantwoordelijk is voor de desktop publishing revolutie
        van de 80'r jaren.

     Z'n device-onafhankelijkheid
        Postscript programma's kunnen worden uitgevoerd om uitvoer te
        genereren op een pixel-scherm, een vector scherm, een
        faxmachine, van bijna alle soorten afdrukmechanismen, zonder dat
        het originele programma daarvoor nodig is.  De Postscript
        uitvoer ziet er op ieder Postscript device hetzelfde uit, op z'n
        minst binnen de beperkingen van de capaciteiten van het device.
        Voor de aanmaak van PDF, wisselden mensen online complexe
        documenten als Postscript-bestanden uit. De enige reden dat deze
        standaard het niet "uithield", was omdat Windows-computers
        meestal niet waren voorzien van een Postscript previewer, dus
        Adobe specificeerde hyperlinks en compressie voor Postscript,
        noemde het resultaat PDF, distribueerde er previewers voor, en
        vond een markt voor hun "distiller" tools (de functionaliteit
        waar ook door ghostscript's ps2pdf en pdf2ps programma's in is
        voorzien).

     Het is een echte programmeertaal
        Postscript is een complete programmeertaal; je kunt software
        schrijven om er bijna alles mee te doen. Dit is vooral handig
        voor het definiëren van subroutines aan het begin van je
        programma, om complexe zaken te herproduceren telkens weer het
        hele document door, zoals een logo of een grote "CONCEPT" op de
        achtergrond.

     Het is open
        Postscript is volledig gespecificeerd in een voor het publiek
        beschikbare serie boeken (die je bij iedere goede boekwinkel
        kunt kopen).  Alhoewel Adobe het uitvond en in de dominante
        commerciële implementatie voorziet, produceren andere verkopers,
        zoals Aladdin, ook nog onafhankelijke gecodeerde implementaties.

  4.2.  Niet-Postscript

  Als je het (grotere) budget niet hebt, dat nodig is om een Postscript-
  printer te kopen, kun je elke printer gebruiken die door Ghostscript
  wordt ondersteund.  Ghostscript is de vrij-verkrijgbare Postscript
  interpreter, die in de plaats van de feitelijke printer Postscript
  ondersteuning, wordt gebruikt. Op de Ghostscript Home Page
  <http://www.cs.wisc.edu/~ghost/> staat een lijst met ondersteunde
  printers en informatie over de status van nieuwe en experimentele
  drivers. Merk op dat op deze pagina ondersteunde printers van de
  laatste versie van Ghostscript staan, terwijl de meeste Linux
  distributies slechts een wat verouderde versie van Ghostscript mee
  kunnen leveren vanwege de licentie. Gelukkig bestaat er een
  voorverpakt en up-to-date package Ghostscript dat in ieder
  contributiegebied beschikbaar wordt gesteld.  Help alsjeblieft de
  Ghostscript printerondersteunings pagina door je successen en
  mislukkingen te rapporteren, waar om wordt gevraagd.


  Adobe heeft nu een nieuwe printertaal met de naam "PrintGear". Ik denk
  dat het een sterk vereenvoudigde taal in binair formaat is, met wat
  Postscript erfenissen, maar zonder Postscript compatibiliteit. En ik
  weet niet of Ghostscript het ondersteunt. Maar het schijnt dat een
  aantal PrintGear printers een andere taal zoals PCL ondersteunen, en
  deze printers zullen met Linux werken (als de PCL in de printer is
  geïmplementeerd en niet in een Windows-driver).

  4.3.  Welke printers werken?

  Als je een printer wilt kopen, kun je op verscheidene plaatsen kijken,
  om er achter te komen of het zal werken.  De coöperatieve beheerde
  Printing HOWTO printer database
  <http://www.picante.com/~gtaylor/pht/printer_list.cgi> streeft ernaar
  een uitgebreide lijst met de stand van Linux printer ondersteuning te
  zijn. Een samenvatting ervan staat hieronder; controleer het online
  voor meer details en informatie voor welke driver je moet gebruiken.

  Ghostscript's printer compatibiliteitenpagina
  <http://www.cs.wisc.edu/~ghost/printer.html> bevat een lijst met een
  aantal werkende printers, als ook links naar andere pagina's.  En
  Dejanews bevat honderden "het werkt" en "het werkt niet" verklaringen.
  Probeer ze alle drie en als je dit gedaan hebt, controleer dan of je
  printer aanwezig is en klopt in de database
  <http://www.picante.com/~gtaylor/pht/printer_list.cgi>, zodat het in
  de toekomst juist in dit document zal worden weergegeven.

  4.3.1.  Printer compatibiliteitenlijst

  Deze sectie is een samenvatting van de online versie. De online versie
  bevat ook de basisspecificaties, opmerkingen, links naar driver-
  informatie, gebruikers-beheerde documentatie, webpages van
  fabrikanten, enzovoort.  De online versie van deze lijst is ook
  interactief; mensen kunnen continue printers toevoegen en doen dit
  ook, dus zorg ervoor dat je deze ook controleert.  Als laatste, als je
  printer niet in de lijst staat, voeg deze dan toe!

  Printers staan hier in vier categoriën onderverdeeld:

     Perfectly
        Perfect printers werken perfect - je kunt afdrukken met de
        volledige mogelijkheden van de printer, inclusief kleur, de
        volledige resolutie, enz.  In een paar gevallen staan printers,
        met ongedocumenteerde "resolutie vergroting" modes die niet
        werken, als perfect weergegeven; in het algemeen is het verschil
        in de afdrukkwaliteit klein genoeg dat het niet waard is om je
        druk om te maken.

     Mostly
        Je kunt prima afdrukken, maar er zijn kleine beperkingen van
        bepaalde aard met betrekking tot afdrukken of andere
        faciliteiten.

     Partially
        Je kunt afdrukken, maar misschien niet in kleur, of alleen in
        een lage resolutie. Zie de online kolom met opmerkingen voor
        informatie over de beperking.

     Paperweight
        Je kunt geen ene moer afdrukken; dit zal typisch te wijten zijn
        aan het ontbreken van een driver en/of documentatie over hoe er
        één geschreven kan worden.

  Aangezien in deze informatie door dozijnen mensen is voorzien, wordt
  in geen van de gevallen gegarandeerd dat ze correct is.  Het zou
  echter makkelijk te bevestigen moeten zijn vanaf de webpages van de
  driver en websites van de fabrikanten.

  En zonder verdere ophef is hier de printer-compatibiliteitenlijst:

     Apple

        Perfectly
           LaserWriter 16/600, LaserWriter IINTX, LaserWriter Select
           360.

        Mostly
           12/640ps.

        Paperweight
           StyleWriter 2500.

     Avery


        Perfectly
           Personal Label Printer+.

        Mostly
           Personal Label Printer.

     Brother

        Perfectly
           HL-1070, HL-10V, HL-10h, HL-1260, HL-2060, HL-4Ve, HL-630,
           HL-660, HL-720, HL-730, HL-760, HL-8.

        Mostly
           HJ-400, HL-1040, HL-1050, HL-1060, HL-1250, MFC 6550MC.

        Partially
           MC-3000, MFC 7150C.

        Paperweight
           HL-820.

     Canon

        Perfectly
           BJ-10e, BJ-20, BJ-200, BJ-330, BJ-5, BJC-210, BJC-250,
           BJC-4000, BJC-4100, BJC-4200, BJC-4300, BJC-4400, BJC-600,
           BJC-6000, BJC-610, BJC-620, BJC-70, BJC-800, LBP-1260,
           LBP-1760, LBP-4+, LBP-4U, LBP-8A1, LBP-8II, LIPS-III.

        Mostly
           BJ-300, BJC-1000, BJC-2000, BJC-240, BJC-4310SP, BJC-7004,
           BJC-80, LBP-4sx.

        Partially
           BJC-4550, BJC-7000, BJC-7100, MultiPASS C2500, MultiPASS
           C3500, MultiPASS C5000, Multipass C3000, Multipass C5500.

        Paperweight
           BJC-5000, LBP-460, LBP-660, Multipass L6000.

     Citizen

        Perfectly
           ProJet II, ProJet IIc.

        Partially
           printiva600C.

     DEC


        Perfectly
           DECWriter 500i, DECwriter 110i, DECwriter 520ic, LN03.

        Partially
           1800.

     Dymo-CoStar

        Perfectly
           ASCII 250, ASCII+, EL40, EL60, LabelWriter II, LabelWriter
           XL, LabelWriter XL+, SE250, SE250+, Turbo.

     Epson

        Perfectly
           ActionLaser 1100, LP 8000, LQ 850, SQ 1170, Stylus Color,
           Stylus Color 400, Stylus Color 440, Stylus Color 640, Stylus
           Color 800, Stylus Color 850, Stylus Color II, Stylus Color
           IIs, Stylus Pro XL.


        Mostly
           EPL 5700, Stylus 300, Stylus Color 3000, Stylus Color 500,
           Stylus Color 740.

        Partially
           Stylus Color 300, Stylus Color 900, Stylus Photo 700, Stylus
           Photo 750, Stylus Photo EX.

     Fujitsu

        Perfectly
           PrintPartner 10V, PrintPartner 16DV, PrintPartner 20W,
           PrintPartner 8000.

     HP

        Perfectly
           2000C, 2500C, Color LaserJet 4500, DeskJet 1200C, DeskJet
           1200C/PS, DeskJet 1600C, DeskJet 1600Cm, DeskJet 310, DeskJet
           400, DeskJet 420C, DeskJet 500, DeskJet 500C, DeskJet 510,
           DeskJet 520, DeskJet 540, DeskJet 550C, DeskJet 600, DeskJet
           610C, DeskJet 610CL, DeskJet 612C, DeskJet 660C, DeskJet
           670C, DeskJet 672C, DeskJet 682C, DeskJet 690C, DeskJet 694C,
           DeskJet 697C, DeskJet 810C, DeskJet 812C, DeskJet 850C,
           DeskJet 855C, DeskJet 882C, DeskJet 890C, DeskJet 970Cxi,
           LaserJet 1100, LaserJet 1100A, LaserJet 2 w/PS, LaserJet
           2100M, LaserJet 2P, LaserJet 3, LaserJet 3P w/PS, LaserJet 4,
           LaserJet 4 Plus, LaserJet 4050N, LaserJet 4L, LaserJet 4M,
           LaserJet 4P, LaserJet 5, LaserJet 5000, LaserJet 5L, LaserJet
           5M, LaserJet 5MP, LaserJet 5P, LaserJet 6L, LaserJet 6MP,
           LaserJet 6P, LaserJet 8000, LaserJet 8100, Mopier 320,
           PaintJet XL300.

        Mostly
           DesignJet 650C, Designjet 750 C Plus, DeskJet 1120C, DeskJet
           870C, DeskJet 880C, DeskJet 895C, DeskJet 895Cxi, DeskJet
           970Cse, LaserJet 2, LaserJet 2100.

        Partially
           DeskJet 1000C, DeskJet 710C, DeskJet 712C, DeskJet 720C,
           DeskJet 722C, DeskJet 820C, OfficeJet 500, OfficeJet 600,
           OfficeJet 625, OfficeJet Pro 1150C.

        Paperweight
           LaserJet 3100.

     IBM


        Perfectly
           4019, 4029 10P, 4303 Network Color Printer, Page Printer
           3112, ProPrinterII.

     Kyocera

        Perfectly
           F-3300, FS-1700+, FS-600, FS-800, P-2000.

        Mostly
           FS-3500.

     Lexmark

        Perfectly
           4039 10plus, Optra Color 1200, Optra Color 1275, Optra Color
           40, Optra Color 45, Optra E, Optra E+, Optra E310, Optra Ep,
           Optra K 1220, Optra R+, Optra S 1250, Optra S 1855,
           Valuewriter 300.

        Mostly
           1000, 1100, 2070, 5000, 5700, 7000, 7200.

        Partially
           1020 Business, 2030, Winwriter 400, Z51.

        Paperweight
           1020, 2050, 3000, 3200, Winwriter 100, Winwriter 150c,
           Winwriter 200, Z11.

     Minolta

        Perfectly
           PagePro 6, PagePro 6e, PagePro 6ex, PagePro 8.

        Partially
           PagePro 8L.

     NEC

        Perfectly
           P2X, SilentWriter LC 890, Silentwriter2 model 290,
           SuperScript 660i.

        Partially
           SuperScript 100C, SuperScript 1260, SuperScript 150C,
           SuperScript 650C, SuperScript 750C, SuperScript 860,
           SuperScript 870.

        Paperweight
           SuperScript 610plus, SuperScript 660, SuperScript 660plus.

     Oce

        Perfectly
           3165.

     Okidata

        Perfectly
           8p, OL 410e, OL 600e, OL 610e/PS, OL 800, OL 810e/PS,
           OL400ex, OL810ex, OL830Plus, Okipage 10e, Okipage 12i,
           Okipage 20DXn, Okipage 6e, Okipage 6ex, Okipage 6w, Okipage
           8c.

        Mostly
           OL 400w, Okipage 4w, Super 6e.

        Partially
           ML 192+, OL 610e/S.

        Paperweight
           Okijet 2010, Okijet 2500, Okipage 8w.

     Olivetti

        Perfectly
           JP350S, JP450, PG 306.

     PCPI

        Perfectly
           1030.
     Panasonic

        Perfectly
           KX-2135, KX-P1123, KX-P1124, KX-P1150, KX-P2023, KX-P2150,
           KX-P4410, KX-P4450, KX-P5400, KX-P8420, KX-P8475.

        Mostly
           KX-P2123, KX-P6150.

        Partially
           KX-P6500.

        Paperweight
           KX-P6100, KX-P6300 GDI, KX-P8410.

     Printrex

        Partially
           820 DL.

     QMS

        Perfectly
           2425 Turbo EX.

        Mostly
           ps-810.

     Ricoh

        Perfectly
           4801, 6000.

        Paperweight
           Aficio Color 2206, Afico FX10.

     Samsung

        Perfectly
           ML-5000a.

        Paperweight
           ML-85G.

     Seiko

        Perfectly
           SpeedJET 200.

        Mostly
           SLP, SLP 120, SLP 220, SLP EZ30, SLP Plus, SLP Pro.

     Sharp

        Perfectly
           AR-161.

     Star

        Perfectly
           NL-10.

        Mostly
           LC 90, LC24-200.


        Paperweight
           WinType 4000.

     Tally

        Perfectly
           MT908.

     Tektronix

        Perfectly
           4696, 4697, Phaser 780, Phaser IISX, Phaser PX.

     Xerox

        Perfectly
           DocuPrint 4508, DocuPrint C55, DocuPrint N17, DocuPrint N32.

        Mostly
           DocuPrint P12, DocuPrint P8e, Document Homecentre, XJ6C.

        Partially
           WorkCentre 450cp, XJ8C.

        Paperweight
           DocuPrint P8, WorkCentre XD120f.

  4.4.  Hoe koop je een printer?

  Het is tegenwoordig wat moeilijk een printer uit te kiezen; er zijn
  nogal wat modellen om uit te kiezen. Hier zijn een aantal tips:

     Kosten
        Je krijgt waarvoor je betaalt. De meeste printers onder de $200
        zullen redelijk goed afdrukken, maar de kosten per pagina zijn
        erg hoog. Bij een aantal printers heb je voor één of twee
        cartridges al weer een nieuwe printer! De goedkoopste printers
        gaan echter niet erg lang mee. De minst dure printers hebben een
        MTBF van ongeveer 3 maanden!

     Inkjets
        De printkoppen van een Inkjet zullen op den duur verstopt raken,
        wat niet te repareren is, dus heb je de mogelijkheid de kop op
        één of andere manier te vervangen. De printkoppen van Inkjets
        zijn duur, dus je kunt de kop beter maar alleen vervangen
        wanneer het echt nodig is. Het schijnt dat de Epson Stylus
        printers koppen hebben die hersteld kunnen worden, en dat HP
        DeskJets de koppen in de cartridges hebben geïntegreerd. Canons
        hebben cartridges bestaande uit drie delen die onafhankelijk van
        elkaar vervangbare inktreservoirs; ik vind dit ontwerp wel
        prettig. OTOH, de HP cartridges zijn niet zoveel duurder, en HP
        is over de gehele linie beter; Canon is vaak de derde keus
        vanuit het oogpunt van kwaliteit.

     Lasers
        Laserprinters consumeren een drum en toner. Het goedkoopste
        ontwerp heeft de toner en drum in één grote cartridge; deze
        ontwerpen zijn het duurst in het gebruik. De beste ontwerpen
        voor grote hoeveelheden maken gebruik van gewone tonerpoeder of
        tenminste aparte tonercartridges en drums.

     Fotografie
        De beste kleurenuitvoer van foto's komt van doorlopende tone-
        printers zoals de Tektronix Phasers (waxy dye) of de Alps series
        (één of ander droog inkt-proces). Een paar van de Alps units
        zijn werkelijk te veroorloven, maar deze werken nog niet onder
        Linux (IIRC ze zijn gedocumenteerd). De meer algemene voor foto
        gespeciliseerde inkjets maken meestal gebruik van 6 kleuren
        CMYKcm afdrukken of zelfs van een 7 kleuren CMYKcmy proces;
        alleen modellen met Postscript ondersteuning werken onder Linux,
        aangezien Ghostscript deze kleuren modellen niet schijnt te
        ondersteunen. Goede CMYK uitvoer is echter niet te versmaden.
        Alle printers gespecialiseerd in foto's zijn duur in het
        gebruik; óf je blauw raakt altijd op en je moet de gehele
        cartridge vervangen, of je betaalt nogal veel aan de individuele
        kleurnavullingen voor je dure foto-printer.

     Snelheid
        Snelheid is evenredig aan verwerkingskracht, bandbreedte, en in
        het algemeen de kosten van de printer. De snelste printers zijn
        netwerk postscript printers met krachtige interne processors.
        Printers voor de gewone consument zijn deels afhankelijk van de
        snelheid van Ghostscript, wat je nog iets kunt beïnvloeden met
        een redelijk goede krachtige computer; in het bijzonder kunnen
        volledige kleurenpagina's grote hoeveelheden host-memory
        consumeren.

     Dot Matrix
        Als je op carbonformulieren af wilt drukken, heb je een impact
        printer nodig; veel bedrijven produceren nog steeds dot matrix
        printers, de meeste daarvan emuleren traditionele Epson modellen
        en werken dus prima.

     Labels
        Er zijn twee series ondersteunde labelprinters; zoek naar de
        Dymo-Costar en de Seiko SLP modellen. Het kan zijn dat andere
        modellen niet werken. Avery maakt ook diverse groottes
        sticheretiketten in 8.5x11 formaat die je voor je gewone printer
        kunt gebruiken.

     Plotting
        Grote conceptformaten worden tegenwoordig meestal door monster
        inkjets ondersteund; HP is een populaire keuze. Middelgrote
        (11x17) inkjets worden gewoonlijk ook voor kleinere afdrukken
        gebruikt.  Veel plotting van deze soort wordt gedaan met de
        talen RTL, HP-GL, en HP-GL/2, wat allen eenvoudige HP's eigen
        vector-talen zijn die gewoonlijk direct door applicatie-software
        worden gegenereerd.

  5.  Welke spooling software?

  Tot voor kort, was de keuze voor Linux gebruikers eenvoudig - iedereen
  draaide hetzelfde oude lpd dat voornamelijk letterlijk afkomstig is
  van de Net-2 code van BSD. Zelfs nu nog leveren de meeste verkopers
  deze software. Maar dit is op SVR4 lijkende systemen - waaronder Sun's
  Solaris - aan het wijzigen.  Ze komen met een volledig ander print
  spooling package, geconcentreerd rondom lpsched. En er zijn tekenen
  dat een aantal verkopers van Linux over zullen stappen op de levering
  van LPRng, een veel minder oude printspooling implementatie dat vrij-
  verkrijgbaar is. LPRng is voor grote installaties veel gemakkelijker
  te beheren.  (lees: meer dan één printer, elke seriële printer, van of
  elke bijzondere niet-lpd netwerkprinter) en heeft een minder
  ontzaglijk willekeurige codebase dan het stereotiepe lpd. Er kan zelfs
  eerlijk van worden beweerd dat het veilig is - er zijn geen SUID
  binaries, en het ondersteunt authenticatie via PGP van Kerberos.


  Een interessante nieuwkomer is "CUPS", een implementatie van het
  Internet Printing Protocol, een RFC-gedefinieerde vervangend protocol
  voor het eerbiedwaardige  lpd-protocol. De primaire implementatie
  hiervan is de open-source component van het commerciële product "Easy
  Print", welke bestaat uit een intelligente spooler en een verzameling
  commerciële printerdrivers gebouwd rond Ghostscript.

  Voor het moment, zelfs in het licht van de nieuwe opties, is lpd voor
  de meeste Linux-gebruikers waarschijnlijk prima. Ondanks dat het niet
  het geweldigste systeem is, werkt het prima zodra het éénmaal is
  ingesteld, het wordt goed begrepen en is uitgebreid in Unix-boeken van
  derden gedocumenteerd.

  Als je graag meer informatie over LPRng zou willen hebben, kijk dan op
  de LPRng Web Page <http://www.astart.com/lprng/LPRng.html>. In
  toekomstige versies van deze HOWTO zal informatie over het gebruik van
  zowel LPRng als de gewone lpd worden opgenomen.

  6.  Hoe het werkt, basis


  Om het afdrukken goed te kunnen laten werken, zul je moeten begrijpen
  hoe het lpd-systeem werkt.

  Lpd staat voor Line Printer Daemon, en verwijst in verschillende
  contexten naar zowel de daemon als de gehele verzameling programma's
  waarmee print spooling wordt gedraaid. Dit zijn:


     lpdDe spooling daemon.
        Één hiervan draait om alles op een computer te besturen, EN één
        draait per printer op het moment dat de printer aan 't afdrukken
        is.

     lpr
        Het gebruikers spooling commando.  Lpr zoekt contact met lpd en
        brengt een nieuwe afdruktaak in de spool.

     lpq
        Toont de taken in een wachtrij.

     lpc
        Het Lpd systeem beheercommando. Met lpc kun je de
        afdrukwachtrijen stoppen, starten, opnieuw ordenen, enz.

     lprm
        lprm zal een taak uit de print spool verwijderen.

  Maar hoe valt dit nu samen?  Als het systeem wordt opgestart, wordt
  lpd uitgevoerd.  Het scant het bestand /etc/printcap om kennis te
  nemen van de printers waar het spools voor zal gaan beheren.  Iedere
  keer als iemand lpr opstart, zoekt lpr contact met lpd via de named
  socket /dev/printer, en geeft lpd zowel het bestand dat moet worden
  afgedrukt en wat informatie over wie aan het afdrukken is en hoe het
  moet worden afgedrukt.  Lpd drukt op zijn beurt vervolgens het bestand
  af op de daarvoor bestemde printer.

  Het lp-systeem werd van origine ontworpen toen de meeste printers nog
  regelprinters waren - dat hield in dat mensen meestal plain ascii
  afdrukte. Waar het op neer komt, is dat er slechts wat extra
  scriptwerk voor nodig is om te zorgen dat lpd heel goed werkt voor de
  hedendaagse afdruktaken, die vaak in PostScript, of tekst, of dvi,
  of.... staan.

  7.  Hoe zaken in te stellen, basis

  7.1.  Traditionele lpd configuratie

  De minimale setup voor lpd resulteert in een systeem die de bestanden
  in een wachtrij kan plaatsen en ze kan afdrukken.  Het zal er geen
  enkele aandacht aan schenken, of je printer ze zal begrijpen of niet,
  en zal je waarschijnlijk geen aantrekkelijke uitvoer laten produceren.
  Toch is het de eerste stap naar begrip, dus lees verder!

  Om een afdrukwachtrij aan lpd toe te voegen, moet je een record in
  /etc/printcap, en de nieuwe spooldirectory onder /var/spool/lpd
  aanmaken.

  Een record in /etc/printcap ziet er ongeveer zo uit:


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




  Hiermee wordt een spool met de naam lp, dj, of deskjet gedefinieerd,
  tijdelijke opslag in de directory /var/spool/lpd/dj, zonder een maxi­
  mumlimiet per taak, die afdrukt naar het device /dev/lp0, en zonder
  bannerpage (met de naam van de persoon die het afdrukte, enz) aan het
  begin van de afdruktaak toegevoegd.

  Lees nu de manpage voor printcap.

  Het bovenstaande lijkt zeer eenvoudig, maar er is een valstrik -
  tenzij ik bestanden verstuur die een DeskJet 500 kan begrijpen, zal
  deze DeskJet vreemde dingen afdrukken.  Het versturen van bijvoorbeeld
  een gewoon Unix-tekstbestand naar een Deskjet resulteert in letterlijk
  geïnterpreteerde newlines, en geeft me:


       Dit is regel één.
                        Dit is regel twee.
                                         Dit is regel drie.




  Het afdrukken van een PostScript bestand naar deze spool zou resul­
  teren in een prachtige lijst met PostScript-commando's, afgedrukt met
  dit "staircase effect", maar geeft geen bruikbare uitvoer.

  Er is duidelijk meer voor nodig, en dit is het doel van filteren.  De
  oplettenden onder jullie, die de printcap manpage hebben gelezen, is
  misschien de kenmerken if en of opgevallen.  if, of de invoerfilter,
  is nu net wat we hier nodig hebben.

  Als we een klein shell-script met de naam filter schrijven waarmee
  carriage returns voor de newlines worden ingevoegd, kan het
  trapsgewijze afdrukken worden uitgeschakeld. Dus we moeten een if
  regel aan ons printcap-record van hierboven toevoegen:


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



  Een eenvoudig filterscript zou kunnen zijn:


       #!perl
       # In de regel hierboven zou het hele pad naar perl moeten worden opgenomen
       # Dit script moet uitvoerbaar zijn: chmod 755 filter
       while(<STDIN>){chop $_; print "$_\r\n";};
       # Je wilt misschien ook nog met een form feed eindigen: print "\f";




  Als we het bovenstaande zouden doen, zouden we een spool hebben waar­
  naar we reguliere Unix tekstbestanden zouden kunnen printen om zin­
  volle resultaten te verkrijgen.  (Ja, er zijn vier miljoen betere
  manieren om dit filter te schrijven, maar weinig zo illustratief. Je
  wordt aangemoedigd dit efficiënter te doen.)

  Het enige resterende probleem is het afdrukken van plain tekst - zeker
  het zou beter zijn om PostScript en andere geformatteerde grafische
  uitvoer te kunnen afdrukken.  Ja, dat is zo, en het is makkelijk te
  doen.  De methode is eenvoudig een uitbreiding van het
  hierbovenstaande linefeed-herstel filter. Als je een filter schrijft
  dat willekeurige bestandstypes als invoer accepteert en DeskJet-
  uitvoer voor iedere situatie produceert, dan heb je inderdaad een
  slimme print spooler!

  Een dergelijk filter wordt een magic filter genoemd.  Doe geen moeite
  om er zelf één te schrijven, tenzij je nogal bizarre zaken afdrukt -
  er zijn er al vele goede voor je geschreven en op het net
  verkrijgbaar.  APS Filter behoort tot de beste, of er moet zich in je
  Linux-distributie een printersetup-tool bevinden die het je allemaal
  nogal makkelijk maakt.

  7.2.  Bestandspermissies

  Op veler verzoek, voeg ik hieronder een lijst in van de permissies van
  de interessante bestanden op mijn systeem. Er zijn wat betere manieren
  om dit te doen, ideaal gezien door alleen gebruik te maken van SGID
  binaries en niet alles als SUID root in te stellen, maar zo kwam mijn
  systeem uit de verpakking, en voor mij werkt het.  (Eerlijk gezegd,
  als je verkoper zelfs geen werkende lpd kan leveren, heb je nog wat te
  doorstaan).


       -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 moet thans als root worden gedraaid zodat het verbonden kan worden
  met de laag-genummerde lp service poort. Het zou waarschijnlijk
  ingesteld moeten staan met UID lp.lp of iets dergelijks na binding,
  maar ik denk niet dat dit zo is.

  8.  Verkrijgen van Afdruksoftware

  Veel reeds geschreven filterpackages (en andere printer-gerelateerde
  software) is beschikbaar vanaf Metalab
  <ftp://metalab.unc.edu/pub/Linux/system/printing/>. Dergelijke
  utility's zoals psutils, a2ps, mpage, dvitodvi, flpr, enz zijn daar
  allemaal te vinden.

  Er verschenen zelfs verscheidene packages die allen probeerden de
  printerconfiguratie makkelijker te maken.  Ze bestaan waarschijnlijk
  allemaal nog, maar één van de beste en meest up-to-date is het APS
  Filter package van Andreas Klemm, welke een menugestuurd printcap
  configuratieprogramma heeft en praktisch alle denkbare typen invoer
  afhandelt.  Als je verkoper je geen mooi afdruksetuptool levert, is
  APS Filter de manier om het te doen.

  9.  Verkopers Oplossingen

  Deze sectie is, per definitie, onvolledig. Stuur gerust details in van
  je favoriete distributie.

  9.1.  Red Hat

  Red Hat heeft een GUI afdrukbeheertool (in de control panel) waarmee
  remote printers en printers op lokale devices kunnen worden ingesteld.
  Je kunt er een door ghostscript ondersteund printertype mee uitkiezen
  en een Unix apparaatbestand om naar af te drukken, vervolgens
  installeert het een afdrukwachtrij in /etc/printcap en schrijft een
  kort PostScript-en-ascii magicfilter gebaseerd rondom gs en nenscript.
  Deze oplossing werkt tamelijk goed, en is voor het instellen van
  alledaagse situaties erg simpel.

  Waar Red Hat niet in slaagt is, als je een printer hebt, die niet door
  hun standaard Ghostscript (welke GNU is in plaats van Aladdin
  Ghostscript, en welke minder printers ondersteunt) wordt ondersteund.
  Controleer de printer-compatibiliteitenlijst hierboven (of online
  <http://www.picante.com/~gtaylor/pht/printer_list.cgi>) als je bemerkt
  dat je geen juiste afdrukken met de Red Hat software kunt produceren.
  Als je printer niet door de tools van Red Hat wordt ondersteund, zul
  je misschien een versie van Aladdin Ghostscript moeten installeren. Je
  zult waarschijnlijk ook beter af zijn als je het apsfilter package
  gebruikt, welke bekend is met de printers die door de late modellen
  van Ghostscripts worden ondersteund.

  9.2.  Debian

  Debian biedt een keuze uit plain lpd en LPRng; LPRng is waarschijnlijk
  een betere keuze. Ik geloof dat Debian ook een keuze uit
  configuratietools voor de printer biedt; apsfilter versie 5 of later
  is waarschijnlijk je beste kans, aangezien die versie ondersteuning
  toevoegt voor LPRng en Ghostscript's uniprint driver schema.

  9.3.  Andere Distributies

  Stuur me alsjeblieft informatie op over wat andere distributies doen!

  10.  Ghostscript

  Ghostscript is een ongelofelijk veelbetekenend programma voor het
  afdrukken onder Linux.  De meeste afdruksoftware onder Unix genereert
  PostScript, wat typisch een $100 optie voor een printer is.
  Ghostscript is echter vrij-verkrijgbaar en zal de taal van je printer
  vanuit PostScript genereren.  Wanneer verbonden met je lpd input
  filter, geeft het je een virtuele PostScript printer en vereenvoudigt
  het 't leven enorm.

  Ghostscript is in twee vormen beschikbaar. De commerciële versie van
  Ghostscript, met de naam Aladdin Ghostscript, mag vrij worden gebruikt
  voor persoonlijk gebruik, maar mag niet door commerciële Linux
  distributies worden gedistribueerd.  Het loopt gewoonlijk ongeveer een
  jaar vooruit op de vrij-verkrijgbare Ghostscript; op het moment
  ondersteunt het bijvoorbeeld veel kleuren inktjets die de oudere
  Ghostscripts niet ondersteunen.

  De vrij verkrijgbare versie van Ghostscript is GNU Ghostscript, en is
  gewoon een verouderde versie van Aladdin ghostscript aan GNU
  geschonken.  (Roem aan Aladdin voor deze regeling; meer verkopers van
  software zouden vrije software op deze manier moeten ondersteunen, als
  het niet mogelijk is dat ze hun geheel ontwikkelde code distribueren).

  Wat je ook doet met gs, wees er heel erg zeker van dat je het met de
  optie voor het deactiveren van bestandstoegang (-dSAFER) uitvoert.
  PostScript is een volledig functionele taal, en een slecht PostScript
  programma zou je een aardige hoofdpijn kunnen bezorgen.

  PDF, het Portable Document Format van Adobe is in feite niet veel meer
  dan georganiseerd PostScript in een gecomprimeerd bestand. Ghostscript
  kan PDF invoer afhandelen net als het dat met PostScript doet.  Dus je
  kunt de eerste van je groep zijn met een PDF-capabele printer.

  10.1.  Ghostscript Aanroepen

  Ghostscript zal draaien met wat voor magic filter je ook installeert
  (ik raad je apsfilter aan als je verkoper je niet iets leverde waar je
  wat aan hebt), maar voor het opsporen van fouten is het vaak handig
  het direct uit te voeren.

  gs -help zal een beknopte informatieve lijst met opties en beschikbare
  drivers geven (merk op dat dit de lijst met drivers is die is
  ingecompileerd, niet de hoofdlijst met alle beschikbare drivers).

  Misschien wil je gs wel draaien voor testdoeleinden zoals: gs options
  -q -dSAFER -sOutputFile=/dev/lp1 test.ps.

  10.2.  Ghostscript uitvoer fijnafstemmen

  Er zijn een aantal dingen die je kunt doen als de uitvoer van gs niet
  naar je tevredenheid is (eigenlijk kun je alles doen wat je maar wilt,
  aangezien je de source hebt).

  10.2.1.  Uitvoer lokatie en grootte

  De lokatie, grootte en breedte/hoogte-verhouding van de afbeelding op
  een pagina wordt bepaald door de printer-specifieke driver in
  ghostscript.  Als je bemerkt dat je pagina's er te vroeg afgebroken,
  of te lang, of te groot met een factor twee uitkomen, wil je misschien
  eens kijken in de source module van je driver en de parameters erin
  aanpassen.  Helaas is iedere driver anders, dus ik kan je niet echt
  zeggen wat je aan moet passen, maar de meeste zijn redelijk goed
  gedocumenteerd.

  10.2.2.  Gamma, dotsizes, enz.

  De meeste niet-laser printers hebben als nadeel dat hun dots nogal
  groot zijn. Dit resulteert in te donkere afbeeldingen. Als je dit
  probleem ervaart zou je je eigen transportfunctie moeten gebruiken.
  Maak gewoon het volgende bestand aan in de ghostscript lib-dir en voeg
  de naam ervan toe aan de gs call vlak voor het eigenlijke bestand.
  Misschien dat je de feitelijke waarden aan je printer aan moet passen.
  Hoe lager de waarde hoe helderder de afdruk.  Vooral als je driver
  gebruik maakt van een Floyd-Steinberg algoritme om kleuren in rasters
  in te delen, zijn lagere waarden ( 0.2 - 0.15 ) waarschijnlijk een
  goede keus.





  ---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<---




  Het is ook mogelijk printers met wat colour fault te verbeteren door
  deze waarden aan te passen. Als je iets dergelijks doet, raad ik je
  aan het bestand colorcir.ps te gebruiken, dat bij ghostscript zit (in
  de examples/ subdir), als een testpagina.


  Voor veel van de nieuwere kleuren-inkjetdrivers bestaan commando-regel
  opties of verschillende upp driver files, welke gamma en andere
  wijzingen implementeren om de printer voor verschillende papiersoorten
  aan te passen.  Je zou hiernaar moeten kijken voordat je met
  Postscript aan de gang gaat om zaken te herstellen.

  11.  Hoe afdrukken naar een printer over het netwerk

  Één van de mogelijkheden van lpd is dat het afdrukken over het netwerk
  naar printers ondersteunt, die fysiek met een andere machine zijn
  verbonden. Je kunt er voor zorgen dat lpr transparant naar printers op
  alle soorten netwerken af kan drukken, als je zorgt voor een
  zorgvuldige combinatie van filterscripts en bij elkaar passende
  utility's.

  11.1.  Naar een Unix/lpd host

  Om remote computers toe te staan naar je printer af te drukken, moet
  je de lijst met computers in /etc/hosts.equiv of /etc/hosts.lpd
  bijwerken.  (Merk op dat hosts.equiv nog heel wat andere effecten
  heeft; wees er zeker van dat je weet wat je aan het doen bent als je
  je computer hier i vermeldt). Je kunt alleen bepaalde gebruikers op de
  andere computers toestaan om naar je printer af te drukken door het
  specificeren van de rs attribuut; lees de lpd man page voor informatie
  hierover.

  11.1.1.  Met lpd

  Om naar een andere machine af te drukken, voeg je als volgt gegevens
  toe aan /etc/printcap:


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




  Noot: Er bevindt zich op de lokale computer nog steeds een spooldirec­
  tory die door lpd wordt beheerd. Als de remote machine bezet of
  offline is, kunnen afdruktaken van de lokale computer in het spoolge­
  bied wachten tot ze kunnen worden verzonden.




  11.1.2.  Met rlpr

  Je kunt rlpr ook gebruiken een afdruktaak direct naar een wachtrij op
  een remote computer te sturen.  Dit is vooral handig in situaties waar
  je slechts bij gelegenheid naar een diversiteit aan printers afdrukt.
  Vanuit de aankondiging voor rlpr:

  Rlpr gebruikt TCP/IP om taken naar lpd-servers, waar dan ook op een
  netwerk, af te drukken.

  In tegenstelling tot lpr, vereist het *niet* dat de remote printers
  expliciet bekend zijn bij de machine vanwaar je af wilt drukken,
  (d.w.z. door /etc/printcap) en is dus aanmerkelijk flexibeler en
  vereist minder beheer.

  rlpr kan overal worden gebruikt waar ook een traditionele lpr zou
  kunnen worden gebruikt, en het is backwards compatibel met de
  traditionele BSD lpr.

  De belangrijkste kracht die door rlpr wordt bereikt is de kracht om op
  afstand *van overal naar iedere plaats* af te drukken zonder rekening
  te houden met hoe het systeem vanwaar je wilt afdrukken werd
  geconfigureerd.  Rlpr kan net als de traditionele lpr als een filter
  werken, zodat clients die op een remote computer worden uitgevoerd,
  zoals netscape, xemacs, enz., enz., zonder al te veel moeite naar je
  lokale computer af kunnen drukken.

  Rlpr is beschikbaar vanaf Metalab
  <ftp://metalab.unc.edu/pub/Linux/system/printing/>.

  11.2.  Naar een Win95, WinNT, LanManager, of Samba printer

  Er is een Printing naar Windows mini-HOWTO waarin meer informatie
  staat dan hierin is te vinden.

  Het is mogelijk een lpd wachtrij te besturen via de smbclient
  programma (onderdeel van de samba suite) naar een op TCP/IP gebaseerde
  SMB print service.  Samba bevat hiervoor een script met de naam
  smbprint. In het kort komt het erop neer dat je een
  configuratiebestand voor de specifieke printer waar het om gaat in de
  spooldirectory plaatst, en het smbprint-script als de if installeert.

  Het /etc/printcap record ziet er ongeveer zo uit:


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




  Je zou de documentatie in het smbprint script moeten lezen, voor meer
  informatie over hoe je dit in kunt stellen.

  Je kunt ook de smbclient gebruiken, om een bestand direct aan een SMB
  afdrukservice aan te leveren zonder dat lpd daarbij betrokken is. Zie
  de man page.

  11.3.  Naar een NetWare Printer

  In de ncpfs suite bevindt zich een utility genaamd nprint welke in
  dezelfde functionaliteit voorziet als smbprint maar dan voor NetWare.
  Je kunt ncpfs verkrijgen bij Metalab.  Vanuit het LSM record voor
  versie 0.16:
       Met ncpfs kun je volumes van je netwareserver onder Linux
       mounten.  Je kunt ook naar een netware afdrukwachtrij
       afdrukken en spool netware afdrukwachtrijen naar het Linux
       afdruk systeem.  Je hebt kernel 1.2.x of 1.3.54 en hoger
       nodig. ncpfs werkt NIET met enige 1.3.x kernels lager dan
       1.3.54.


  Om ervoor te zorgen dat nprint via lpd werkt, schrijf je een klein
  shell-script om stdin op de NetWare printer af te drukken, en dat
  installeer je als de if voor een lpd afdrukwachtrij.  Je zult iets
  krijgen als:


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




  Bij benadering kan het nprint-script er ongeveer zo uitzien:


       #! /bin/sh
       # Je zou eerst de guest account zonder wachtwoord moeten proberen!
       /usr/local/bin/nprint -S net -U name -P passwd -q printq-name -




  11.4.  Naar een EtherTalk (Apple) printer

  Het netatalk package bevat iets degelijks als nprint en smbclient.
  Anderen hebben de procedure voor het afdrukken van en naar een Apple
  netwerk veel beter beschreven dan ik dat ooit zal kunnen; zie de Linux
  Netatalk-HOWTO <http://thehamptons.com/anders/netatalk/>.

  11.5.  Naar een HP of andere ethernet printer

  HP's en een aantal andere printers worden met een ethernet interface
  geleverd waarnaar je met gebruik van lpd direct af kunt drukken.  Je
  zou de instructies die met je printer werden meegeleverd of de netwerk
  adaptor moeten lezen, maar in het algemeen, "draaien" dergelijke
  printers lpd, en voorzien in één of meer wachtrijen waarnaar je kunt
  afdrukken.  Een HP zou bijvoorbeeld met een volgend printcap kunnen
  werken:


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




  HP Laserjet printers met Jet Direct interfaces ondersteunen in het
  algemeen twee ingebouwde lpd wachtrijen - "raw" welke PCL accepteren
  (en mogelijk Postscript) en "text" welke recht toe recht aan ascii
  accepteert (en automatisch het staircase effect bestrijdt).  Als je
  een JetDirect Plus3 three-port box hebt, worden de wachtrijen "raw1",
  "text2", enzovoort genoemd.


  Merk op dat de ISS-organisatie een verzameling denial of service
  attacks heeft herkend waardoor HP Jetdirect interfaces vastlopen.  De
  meeste daarvan zijn in de herfst van 98 aangepakt.

  Op grote schaal, vooral in een grote omgeving waar een aantal printers
  geen Postscript ondersteunen, kan het nuttig zijn een toegewezen
  printserver in te stellen waarnaar alle computers afdrukken en waarop
  alle ghostscripts taken worden gedraaid.

  Hierdoor is het ook mogelijk dat je Linux-box als een spoolserver voor
  de printer fungeert zodat je netwerkgebruikers hun afdruktaken snel
  kunnen volbrengen en verder kunnen gaan zonder op de printer te
  wachten totdat enige andere taak is afgedrukt welke door een ander was
  gezonden.  Dit is ook aan te bevelen als je oudere niet te herstellen
  HP Jetdirects hebt; het vermindert de kans dat de printers vast komen
  te zitten.

  Stel hiervoor een wachtrij in op je linux-box welke naar de ethernet
  toegeruste HP LJ verwijst (zoals hierboven). Stel nu alle clients op
  je LAN zo in dat ze naar de Linux wachtrij verwijzen (bv lj-5 in het
  voorbeeld hierboven).

  Een aantal HP netwerk-printers slaan blijkbaar geen acht op de banner
  page instelling die door clients wordt gezonden; je kunt hun intern
  gegenereerde banner page uitschakelen door naar de printer te
  telnetten, tweemaal een return te geven, in te tikken "banner: 0"
  gevolgd door "quit". Er zijn bovendien nog andere instellingen die je
  op deze manier kunt wijzigen; tik een "?" in voor een lijst.

  De volledige range aan instellingen kan worden beheerd door HP's
  WebJet <http://www.hp.com/go/webjetadmin> software. Dit package draait
  als een daemon, en accepteert via een toegewezen poort http-verzoeken.
  Het voorziet in formulieren en Java-applets waarmee de HP-printers op
  het netwerk kunnen worden bestuurd. In theorie kan het ook Unix
  afdrukwachtrijen beheren, maar het doet dit door gebruik te maken van
  de rexec service, welke volledig onveilig is. Ik adviseer je die
  mogelijkheid niet te gebruiken.

  11.5.1.  Naar oudere HP's

  Een aantal printers (en printer netwerk "black boxen") ondersteunen
  alleen goedkope kleine zonder protocol ingesloten TCP-verbindingen.
  In deze categorie bevinden zich de vroege modellen van de JetDirect
  (waaronder een aantal JetDirectEx) kaarten. Eigenlijk moet je een
  verbinding met de printer op een specifieke poort openen om naar de
  printer af te drukken (typisch een 9100, of 9100, 9101 en 9102 voor
  three-port boxes) en je afdruktaak ernaar toe sturen. LPRng (wat je
  eigenlijk daarvoor in de plaats zou moeten gebruiken, als je deze
  sectie leest) heeft ingebouwde ondersteuning voor het opzetten van
  afdruktaken naar willekeurige TCP-poorten, maar met BSD lpd is het
  niet zo gemakkelijk. Het beste is waarschijnlijk het kleine utility
  genaamd netcat te verkrijgen en te gebruiken. Als dat niet lukt, kan
  het onder andere in Perl worden geïmplementeerd:













  #!/usr/bin/perl
  # Met dank aan Dan McLaughlin voor het schrijven van de originele versie van
  # dit script (En aan Jim W. Jones voor het naast Dan zitten toen hij me
  # schreef voor hulp ;-)

  $fileName = @ARGV[0];

  open(IN,"$fileName") || die "Kan het bestand $fileName niet openen";

  $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 $!;
  }
  # Geef de socket een adres.
  if (bind(S, $this)) {
  #    print "bind ok\n";
  }
  else {
      die $!;
  }

  # Roep de server aan.

  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.  Een if  voor remote printers uitvoeren

  Één eigenaardigheid van lpd is dat de if niet voor remote printers
  wordt uitgevoerd.  Als je bemerkt dat je een if nodig hebt, kun je dit
  doen door een dubbele wachtrij in te stellen en de taak opnieuw in de
  wachtrij te plaatsen. Zie de volgende printcap voor een voorbeeld:


       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:




  rekening houdend met dit filter-lj-5 script:


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




  De -U optie van lpr werkt alleen als lpr als een daemon wordt
  uitgevoerd, en het stelt de naam juist in van degene die de
  afdrukopdracht gaf.  Je zou waarschijnlijk een meer robuuste methode
  moeten gebruiken om de gebruikersnaam te verkrijgen, aangezien het in
  een aantal gevallen niet argument 5 is.  Zie de man page van printcap.

  11.7.  Vanaf Windows

  Afdrukken vanaf een Windows (of waarschijnlijk, OS/2) client naar een
  Linux server wordt direct ondersteund via SMB door middel van het
  gebruik van het SAMBA package, waarmee ook het delen van bestanden van
  je Linux bestandssysteem naar Windows clients wordt ondersteunt.

  Samba bevat tamelijk complete documentatie, en er is tevens een goede
  Samba FAQ die daarop van toepassing is. Je kunt zowel een magic filter
  op de Linux-box configureren en er PostScript naar afdrukken, als
  printer-specifieke drivers op alle Windows-computers installeren en
  daar wachtrijen voor instellen zonder dat daar filters voor nodig
  zijn.  Op de Windows drivers vertrouwen kan in een aantal gevallen
  betere uitvoer produceren, maar is wat meer administratief gedoe als
  er veel Windows boxen zijn. Dus probeer eerst Postscript.

  11.8.  Vanaf een Apple

  Netatalk ondersteunt het afdrukken vanaf Apple clients over EtherTalk.
  Zie de Netatalk HOWTO Page <http://thehamptons.com/anders/netatalk/>
  voor meer informatie.

  11.9.  Vanaf Netware

  Het ncpfs package bevat een daemon genaamd pserver welke kan worden
  gebruikt om in een service te voorzien naar een NetWare
  afdrukwachtrij. Van wat ik ervan heb begrepen, vereist dit systeem een
  op Bindery gebaseerde NetWare, bv 2.x, 3.x, of 4.x met bindery toegang
  geactiveerd.

  Zie de ncpfs FTP site <ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/> voor
  meer informatie over ncpfs en zijn pserver-programma.

  12.  Printers die alleen voor Windows zijn bestemd

  Zoals eerder besproken, wordt een aantal printers als zodanig niet
  ondersteund, omdat ze geen normale printertaal spreken, en in plaats
  daarvan gebruik maken van de computer's CPU om een bitmap weer te
  geven, die dan vervolgens weer op een vastgestelde snelheid naar de
  printer wordt doorgegeven.  In een paar gevallen, spreken deze
  printers ook nog iets normaals, zoals PCL, maar vaak kunnen ze dat
  niet. In een aantal (werkelijk goedkope) gevallen, maakt de printer
  zelfs geen gebruik van een gewone parallelle verbinding maar is
  afhankelijk van de driver van de verkoper om datgeen te emuleren wat
  hardware gedrag zou moeten zijn (als belangrijkste flow control).

  In ieder geval zijn er een paar mogelijk tijdelijke oplossingen als je
  met een dergelijke strop zit opgescheept.

  12.1.  De Ghostscript Windows redirector

  Er is nu een Windows printerdriver beschikbaar (met de naam mswinpr2)
  waarmee een afdruktaak door Ghostscript gaat voordat het uiteindelijk
  wordt afgedrukt.  (Lijkt nogal op een if filter in LDP van Unix). Er
  is ook een nieuwe Ghostscript driver die afdrukt door gebruik te maken
  van GDI-calls.  Dit alles bijelkaar zou(tm) het mogelijk moeten maken
  dat een Windows computer, via de driver van de verkoper, PostScript
  kan printen naar een printer die alleen voor Windows is bestemd.

  Als je dat werkend hebt, kun je de instructies hierboven voor het
  afdrukken naar een Windows printer over het netwerk vanuit Linux
  volgen om Unix (en andere Windows, Mac, enz) hosts naar je printer te
  laten afdrukken.

  Ik heb dit nooit gebruikt aangezien ik geen winprinter heb, dus het
  kan voor jou anders uitpakken. Alle software die je ervoor nodig hebt
  zou beschikbaar moeten zijn vanaf de home page van Ghostscript.  (zie
  de links in de Ghostscript sectie van dit document).

  12.2.  Lexmarks

  Een aantal HP printers gebruiken "Printing Performance Architecture"
  (marketingstaal voor "we waren te goedkoop om PCL te implementeren").
  Dit wordt via een omweg ondersteund via de pbm2ppa translator
  geschreven door Tim Norman. Eigenlijk maak je gebruik van ghostscript
  om PostScript in een bitmapped image in pbm formaat weer te geven en
  gebruik je vervolgens pbm2ppa om dit in een printer-specifiek ppa-
  bitmapformaat te vertalen, klaar om naar de printer te worden gedumpt.
  Het kan zijn dat dit programma er inmiddels ook in een ghostscript
  driverformaat is.

  Er zijn nu ook drivers voor de 5700, 1000, 1100, 2070 en anderen. Zie
  de lijst met ondersteunde printers hierboven en mijn website voor meer
  informatie over het verkrijgen van deze drivers.


  De ppa-software kan worden gehaald vanaf de ppa home page
  <http://www.rpi.edu/~normat/technical/ppa/>; pbm2ppa ondersteunt een
  aantal modellen van de HP 720, 820, en 1000; lees de documentatie die
  met het package wordt meegeleverd, voor meer details over de ppa
  printerondersteuning.

  12.3.  Het pbm2l7k programma

  De meeste goedkope Lexmark-inkjets maken gebruik van een eigen taal en
  heten daarom Winprinters. Henryk Paluch heeft echter een programma
  geschreven waarmee op een Lexmark 7000 in zwart kan worden afgedrukt.
  Hopelijk zal hij in staat zijn er achter te komen hoe in kleur af te
  drukken en de ondersteuning naar andere Lexmark-inkjets uit te
  breiden.  Zie http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/
  <http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/> voor meer informatie.

  13.  Hoe naar een fax machine af te drukken

  13.1.  Een faxmodem gebruiken

  Er zijn een aantal faxprogramma's waarmee je kunt faxen en documenten
  kunt ontvangen.  Één van de meest complexe is HylaFax van Sam Leffler,
  beschikbaar vanaf ftp.sgi.com. Het ondersteunt van alles, van meerdere
  modems tot broadcasting.

  SuSE levert een Java HylaFax client, waarvan wordt beweerd dat het op
  elk Java platform werkt (waaronder Windows en Linux). Voor de meeste
  platformen zijn er ook niet-Java fax-clients; Linux kan bijna zeker al
  je netwerk faxbehoeften afhandelen.

  Ook beschikbaar en voor de meeste Linux-boxen een betere keuze is
  efax, een eenvoudig programma waarmee faxen kunnen worden verzonden.
  Het getty programma mgetty kan faxen ontvangen (en op een aantal
  modems zelfs voicemail!).

  13.2.  Gebruiken van Remote Printing Service

  Er wordt een experimentele service geboden die je een emailbericht
  laat zenden met hetgeen je afgedrukt zou willen hebben, zodanig dat
  het elders op een fax-machine verschijnt.  Er worden mooie formaten
  zoals postscript ondersteund, dus zelfs al zou de globale dekking
  ongelijkmatig zijn, dan kan dit nog steeds een zeer nuttige service
  zijn. Zie de Remote Printing WWW Site <http://www.tpc.int/> voor meer
  informatie over het afdrukken via de remote afdrukservice.

  14.  Hoe genereer je iets dat waard is om af te drukken

  Hier belanden we in een echt rattennest met software. Eigenlijk kan
  Linux vele typen bibliotheken met variërende graden van succes
  draaien: Linux/x86, Linux/Alpha, Linux/Sparc, Linux/foo, iBCS,
  Win16/Win32s (met dosemu en, ooit, met Wine), Mac/68k (met Executor),
  en Java. Ik zal slechts native Linux en algemene Unix software
  bespreken.

  Voor Linux zelf, zijn de mogelijkheden voornamelijk beperkt tot
  datgene wat voor Unix in het algemeen beschikbaar is:


  14.1.  Markup languages

  De meeste markup languages zijn meer geschikt voor grote of herhalende
  projecten, waar je de computer de layout van de tekst wilt laten
  beheren om uniformiteit te verkrijgen.


     nroff
        Dit was één van de eerste Unix markup talen. Man pages zijn de
        meest algemene voorbeelden van hetgeen in *roff macros is
        geformatteerd; veel mensen zweren erbij, maar nroff heeft, vind
        ik in ieder geval, een geheimzinniger syntax dan nodig is, en
        het is voor nieuwe werken waarschijnlijk een magere keuze.  Het
        is echter waard om te weten dat je met groff een man page direct
        in postscript kan zetten.  De meeste man commando's zullen dit
        voor je doen met man -t foo | lpr.

     TeX
        TeX, en het macropackage LaTeX, is één van de meest gebruikte
        markup languages onder Unix.  Technische werkstukken worden vaak
        in LaTeX geschreven omdat het de layout zaken sterk
        vereenvoudigd en het nog steeds één van de weinige
        tekstverwerkings systemen is die wiskunde zowel compleet als
        goed ondersteunen.  Het uitvoerformaat van TeX is dvi, en wordt
        geconverteerd naar PostScript of Hewlett Packard's PCL met dvips
        of dvilj. Als je TeX of LaTeX wilt installeren, installeer dan
        de gehele teTeX groep aan packages; het bevat alles.

     SGML
        Er bestaat tenminste één vrij-verkrijgbare sgml parser die zowel
        beschikbaar is voor Unix als voor Linux; het vormt de basis van
        het Linuxdoc-SGML's homegrown document systeem. Het kan
        bovendien andere DTD's ondersteunen.

     HTML
        Iemand deed de suggestie dat het voor eenvoudige projecten,
        voldoende zou kunnen zijn, het in HTML te schrijven en het met
        Netscape af te drukken. Ik ben het daar niet mee eens, maar
        YMMV.

  14.2.  WYSIWYG Tekstverwerkers

  Er is niet langer enig tekort aan WYSIWYG tekstverwerkings software.
  Verscheidene complete office suites zijn beschikbaar, inclusief één
  die vrij in het gebruik is voor persoonlijk gebruik (StarOffice).

     StarOffice
        De organisatie Sun Microsystes distribueert StarOffice voor
        Linux vrij over het net.  Deze volledig ontwikkelde office suite
        heeft alle faciliteiten die je zou verwachten, en om de prijs
        hoef je het niet te laten. Er is een mini-HOWTO die beschrijft
        hoe je het kunt verkrijgen en installeren.  Het genereert
        PostScript of PCL, dus zou met de meeste printers die op andere
        wijze onder Linux werken, moeten kunnen werken.  Klaarblijkelijk
        is het een Office-kloon en is het nogal opgeblazen; dit zijn
        waarschijnlijk twee equivalente feiten!.

     WordPerfect
        Corel distribueert een basisversie van Word Perfect 8 vrij voor
        Linux, en ze hebben gesuggereerd dat ze bovendien ook Corel Draw
        en Quattro Pro zullen gaan distribueren, zodra ze zijn geport.
        Dit is waarschijnlijk de beste optie als je een ARM computer
        hebt; Corel fabriceert de op ARM- gebaseerde Netwinder Linux
        computers en het is bijna zeker dat ze overal ARM Linux versies
        van aanbieden. Je kunt ook de geheel ontwikkelde versie en
        support, tegelijkertijd of apart kopen. De Linux    WordPerfect
        Fonts and Printers
        <http://www.channel1.com/users/rodsmith/wpfonts.html> pagina
        heeft informatie over het configureren van WordPerfect voor
        gebruik met Ghostscript of z'n ingebouwde printerdrivers (welke
        klaarblijkelijk identiek zijn aan de WordPerfect drivers voor
        DOS, als je printer niet in de WP8-distributie voorkomt).

     Applix
        Applix is een cross-platform (d.w.z., diverse Unices, Windows,
        en anderen) office suite die door het Applix bedrijf wordt
        verkocht.  Red Hat en SuSE verkochten het zelf toen het nog het
        enige was wat te verkrijgen was; nu worden de verkopen weer door
        Applix geregeld.

     AbiWord
        AbiWord is énén van de verscheidene GPL WYSIWYG tekstverwerkers-
        projecten; deze heeft een functioneel basisprogramma
        geproduceerd. Er wordt gewerkt aan integratie met de Gnome
        desktop.

     LyX
        LyX is een front-end naar LaTeX wat er veelbelovend uitziet. Zie
        de LyX Homepage <http://www.lyx.org/> voor meer informatie. Er
        is een versie van LyX in KDE-styl, genaamd Klyx; de auteur van
        LyX en de aanstichter van KDE zijn één en dezelfde persoon.

     Maxwell
        Maxwell is een eenvoudige op MS RTF-formaat gebaseerde
        tekstverwerker welke als een commercieel produkt begon, maar nu
        onder de GPL wordt gedistribueerd.

     Het Andrew User Interface System
        AUIS bestaat uit een WYSIWYG-style editor met de meeste basis
        tekstverwerkingsmogelijkheden, HTML mogelijkheden, en volledige
        MIME email en newsgroup ondersteuning.  Helaas wordt AUIS niet
        langer beheerd.

     Koffice
        Het KDE project werkt aan een volledige office suite.  Ik denk
        dat het nog geen tijd is voor de eerste uitgave. De
        tekstverwerker zal waarschijnlijk een afgeleide van LyX zijn.

     GNOME
        Het GNOME project werkt ook hard aan diverse onder GNU
        gelicentieerde office tools. Er zijn er echter nog geen
        beschikbaar.

  Andere verkopers zouden gerust een berichtje bij me achter kunnen
  laten met hun aanbiedingen.

  15.  Van te voren op scherm bekijken van afdrukbare zaken

  Bijna alles wat je kunt printen, kan ook op het scherm worden bekeken.

  15.1.  PostScript

  Ghostscript heeft een X11-driver die het beste kan worden gebruikt
  onder het beheer van de PostScript previewer gv. Met de laatste
  versies van deze programma's zou je bovendien PDF-bestanden moeten
  kunnen bekijken.  Merk op dat gv z'n oudere previewer "Ghostview"
  heeft vervangen; de nieuwe gebruikersinterface is mooier en heeft meer
  faciliteiten dan de gewone oude Athena gui van ghostview.




  15.2.  TeX dvi

  TeX DeVice Independant bestanden kunnen van tevoren onder X11 worden
  bekeken met xdvi.  Moderne versies van xdvi roepen ghostscript aan om
  de bijzonderheden van PostScript weer te geven.

  Er bestaat bovendien een VT100 driver. Het wordt dgvt genoemd. Tmview
  werkt met Linux en svgalib.

  15.3.  Adobe PDF

  Adobe's Acrobat Reader is beschikbaar voor Linux; download het gewoon
  vanaf hun website  <http://www.adobe.com/>.

  Je kunt ook xpdf gebruiken, het is freeware en de source wordt
  meegeleverd, en ik denk dat Ghostview het bekijken van PDF-bestanden
  met gs onder X11 inmiddels ondersteunt.

  16.  Seriële printers onder lpd

  16.1.  Instelling in printcap

  Lpd voorziet in vijf attributen die je in /etc/printcap in kunt
  stellen om alle instellingen van de seriële poort waarop de printer is
  aangesloten, te beheren.  Lees de printcap man page en let op de
  betekenissen van br#, fc#, xc#, fs# en xs#.  De laatste vier van deze
  attributen zijn bitmaps die de instellingen voor de poorten aangeven.
  Het br# attribuut is gewoon de baud rate, bv `br#9600'.

  Het is erg makkelijk te vertalen van stty instellingen naar printcap
  flag instellingen. Als je dit moet doen, kijk dan nu in de man page
  van stty.

  Gebruik stty om de printerpoort in te stellen zodanig dat je er met
  cat een bestand naar kunt sturen en het correct af kunt drukken.  Zo
  ziet mijn `stty -a' voor mijn printerpoort eruit:


       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 enige wijzigingen hiertussen en de wijze waarop de poort tijdens
  het opstarten wordt geïnitialiseerd zijn -clocal, -crtscts, en ixon.
  Je poort kan echter heel goed anders zijn, afhankelijk van hoe je
  printer flow control afhandelt.

  Je gebruikt stty eigenlijk op een wat vreemde manier. Aangezien stty
  op de terminal opereert naar zijn standaardinvoer, gebruik je het om
  een gegeven seriële poort te manipuleren door gebruik te maken van het
  `<' teken als hierboven.

  Zodra je stty-instellingen goed staan, zodanig dat `cat file >
  /dev/ttyS2' (in mijn geval) het bestand naar de printer stuurt, kijk
  dan naar het bestand /usr/src/linux/include/asm-i386/termbits.h.
  Hierin staan een heleboel #defines en een paar structs. Je wilt dit
  bestand met cat misschien wel naar de printer sturen, (je hebt dat nu
  werkend, toch?) en het als kladpapier gebruiken. Ga naar de sectie die
  begint met



       /* c_cflag bit meaning */
       #define CBAUD   0000017




  Deze sectie geeft een opsomming van de betekenis van de fc# en fs#
  bits. Je zult merken dat de namen daar (na de baud rates) overeenkomen
  met één van de regels van de uitvoer van stty.  Zei ik niet dat dit
  makkelijk zou zijn?

  Let op welke van die instellingen door een - in je stty uitvoer worden
  voorafgegaan. Tel al die nummers bijelkaar op (ze staan in het octale
  stelsel).  Hiermee worden de bits die je wilt schonen voorgesteld, dus
  het resultaat is je fc# capaciteit. Denk er uiteraard aan dat je
  direct na het schonen de bits in zal gaan stellen, dus je kan gewoon
  gebruiken `fc#0177777' (zo doe ik het).

  Doe nu hetzelfde voor die instellingen (opgesomd in deze sectie) die
  in je stty uitvoer geen - ervoor hebben.  In mijn voorbeeld zijn de
  belangrijkste CS8 (0000060), HUPCL (0002000), en CREAD (0000200). Let
  ook op de flags voor je baud rate (de mijne is 0000015). Tel deze
  allemaal bijelkaar op, en in mijn voorbeeld krijg je 0002275. Dit gaat
  in je fs# capaciteit (`fs#02275' werkt in mijn voorbeeld prima).

  Doe hetzelfde met set en clear voor de volgende sectie van het include
  bestand, "c_lflag bits". In mijn geval hoefde ik niets in te stellen,
  dus ik gebruik gewoon `xc#0157777' en `xs#0'.

  16.2.  Oudere seriële printers die tekens weglaten

  Jon Luckey wijst erop dat een aantal oudere seriële printers met ten-
  cent seriële interfaces en kleine buffers echt stop bedoelen als ze
  dit zeggen met flow control. Hij kwam erachter dat het de-activeren
  van de FIFO in zijn 16550 seriële poort van zijn Linux box met
  setserial het probleem met de weggevallen tekens corrigeerde (je
  specificeert het uart-type kennelijk als een 8250 om dit te doen).

  17.  Credits

  De smbprint informatie komt van een artikel door Marcel Roelofs
  <marcel@paragon.nl>.

  In de nprint informatie over het gebruik van Netware printers is
  voorzien door Michael Smith <mikes@bioch.ox.ac.uk>.

  De seriële printers onder de lpd sectie komt van Andrew Tefft
  <teffta@engr.dnet.ge.com>.

  Het stuk over gamma's en dergelijke voor gs werd ingezonden door
  Andreas <quasi@hub-fue.franken.de>.

  De twee paragrafen over de 30 seconden closing_wait van de seriële
  driver is bijgedragen door Chris Johnson <cdj@netcom.com>.

  Robert Hart zond een paar uitstekende paragrafen over het instellen
  van een printserver naar netwerk HP's die ik woordelijk gebruikte.

  En speciale dank aan de velen van jullie die in de loop der jaren
  hebben gewezen op typfouten, slechte url's en fouten in het document.