Verder Terug Inhoud

2. Afdrukken Onder Linux

Deze sectie bespreekt het afdrukken van bestanden, het nakijken van de afdrukwachtrij, het verwijderen van taken uit de wachtrij, het opmaken van bestanden voordat ze worden afgedrukt, en het configureren van je afdrukomgeving.

2.1 Historie van het Linux afdruksysteem

Het Linux afdruksysteem---het lp systeem---is een port van de broncode geschreven door de Regents van de University van California voor de Berkeley Software Distributie versie van het UNIX besturingssysteem.

2.2 Een Bestand Afdrukken met Gebruik van lpr

Verreweg de eenvoudigste manier om onder het Linux besturingssysteem af te drukken is door het bestand direct naar het afdrukapparaat te sturen. Een andere manier om dit te doen is, door het commando cat te gebruiken. Als gebruiker root, is het mogelijk om iets te doen als

# cat thesis.txt > /dev/lp

In dit geval is /dev/lp een symbolische koppeling naar het werkelijke afdrukapparaat ---of het nu een dot-matrix, laserprinter, letterzetter, of plotter is. (Zie ln(1) voor meer informatie over symbolische koppelingen.)

Om beveiligingsredenen, zijn alleen de gebruiker root en gebruikers in dezelfde groep als de print daemon bevoegd om direct naar de printer te schrijven. Dit is de reden waarom commando's zoals lpr, lprm, en lpq moeten worden gebruikt om toegang tot de printer te krijgen.

Daarom moeten gebruikers lpr gebruiken om een bestand af te drukken. Het commando lpr zorgt voor al het werk dat in het begin nodig is om een bestand af te drukken, en geeft de controle vervolgens over aan een ander programma lpd, de line printing daemon. De line printing daemon vertelt de printer vervolgens hoe het bestand moet worden afgedrukt.

Als lpr wordt uitgevoerd, kopieert het eerst het aangegeven bestand naar een bepaalde directory (de spooldirectory) waar het bestand bewaard blijft totdat lpd het afdrukt. Zodra lpd is verteld dat er een af te drukken bestand is, zal het een kopie van zichzelf voortbrengen (als programmeurs noemen we dit forking). Deze kopie zal ons bestand afdrukkken terwijl de originele kopie op meer verzoeken wacht. Dit maakt het mogelijk dat er tegelijkertijd meerdere taken in de wachtrij kunnen worden geplaatst.

De syntax van lpr(1) is een bekende,

$ lpr [ options ] [ filename ... ]

Als filename niet is opgegeven, verwacht lpr dat de invoer van standaardinvoer (meestal het toetsenbord, of de uitvoer van een ander programma) komt. Dit stelt de gebruiker in staat de uitvoer van een commando naar de print-spooler om te leiden. Zoals,

$ cat thesis.txt | lpr

of,

$ pr -l60 thesis.txt | lpr

Het lpr commando accepteert diverse argumenten op de commandoregel die de gebruiker toestaat controle uit te oefenen over hoe het werkt. Een aantal van de meest gebruikte argumenten zijn: -Pprinter specificeert de te gebruiken printer, -h onderdrukt het afdrukken van de de burst pagina, -s maakt een symbolische koppeling aan in plaats van het bestand te kopiëren naar de spooldirectory (handig voor grote bestanden), en -#num geeft het aantal af te drukken kopieën weer. Een voorbeeld interactie met lpr zou kunnen zijn

$ lpr -#2 -sP dj thesis.txt

Dit commando zal een symbolische koppeling aanmaken naar het bestand thesis.txt in de spooldirectory voor de printer met de naam dj, waar het zal worden verwerkt door lpd. Het zal vervolgens een tweede kopie afdrukken van thesis.txt.

Zie lpr(1) voor een lijst met alle opties die lpr herkent.

2.3 Bekijken van de Afdruk Wachtrij met lpq

Gebruik het commando lpq, om de inhoud van de afdrukwachtrij te bekijken. Aangeroepen zonder argumenten, retourneert het de inhoud van de wachtrij van de standaardprinter.

De teruggegeven uitvoer van lpq kan voor vele doelen handig zijn.

$ lpq
lp is ready and printing
Rank   Owner      Job  Files                            Total Size
active mwf        31   thesis.txt                       682048 bytes

2.4 Annuleren van een Afdruktaak met lprm

Een andere nuttige mogelijkheid van elk afdruksysteem is de bevoegdheid om een taak die voorheen in de wachtrij is gezet, te annuleren. Gebruik hiervoor lprm.

$ lprm -

Het commando hierboven annuleert alle afdruktaken waarvan de gebruiker die het commando aanriep, eigenaar is. Een enkele afdruktaak kan worden geannuleerd door eerst het job nummer, dat wordt aangegeven door lpq, te verkrijgen en dat nummer dan aan lprm door te geven. Bijvoorbeeld,

$ lprm 31

zal job 31 (thesis.txt) van de standaardprinter annuleren.

2.5 Het lpd programma besturen met lpc

Het lpc(8) programma wordt gebruikt om de printer, waarin lpd voorziet, te besturen. Je kunt een printer of zijn wachtrijen instellen of onklaar maken, ingangen binnen een wachtrij herschikken, en een statusrapport verkrijgen over de printers en hun wachtrijen. Lpc wordt meestal gebruikt in een setup waar meerdere printers aan één machine hangen.

$ lpc

Hiermee zal het programma lpc worden opgestart. Standaard kom je nu in een interactieve modus, en kun je beginnen met het aanroepen van commando's. De andere optie is om een lpc commando op de commandoregel aan te roepen.

$ lpc status all

Een lijst met de beschikbare commando's staat in de lpd man page, maar hier zijn een paar van de belangrijkste commando's die je kunt gebruiken. Opmerkingen die zijn gemarkeerd met een optie kunnen zowel door een printernaam (lp, print, etc) als het sleutelwoord all worden aangeroepen, wat alle printers betekent.

2.6 De RedHat afdruktool

Even een opmerking tussendoor over RedHat's verbazingwekkende printtool programma. Het lijkt erop dat het alles doet wat een magicfilter zou doen. RedHat installeert al veel van de programma's om het filteren te doen. Hier kun je zien hoe ik mijn printer heb ingesteld onder RH 4.0 met een HP LJ 4L aangesloten op mijn parallelle poort (zou evengoed hetzelfde voor andere versies van RH kunnen zijn).

Door het /etc/printcap bestand met de hand aan te passen, kun je voor iedere fysieke printer meerdere printerdefinities hebben. Één voor verschillende papierformaten, resoluties, enz.


Verder Terug Inhoud