Copyright © 2001 Kurt Pfeifle
Het is toegestaan dit document te kopiëren, te verdelen en/of te wijzigen onder de voorwaarden van de GNU vrije-documentatie-licentie, versie 1.1 of een latere versie, gepubliceerd door de Free Software Foundation; zonder invariante paragrafen, zonder vooromslagteksten, en zonder achteromslagteksten. Een kopie van de licentie vindt u hier: de paragraaf "GNU vrije-documentatielicentie".
In dit handboek wordt KDEPrint beschreven. KDEPrint is geen apart programma. Het is het nieuwe afdrukraamwerk voor KDE 2.2. KDEPrint is een tussenlaag tussen KDE- of andere toepassingen en het geselecteerde (en geïnstalleerde) afdruksubsysteem van uw besturingssysteem (OS).
Inhoudsopgave
Lijst van voorbeelden
In dit handboek wordt KDEPrint beschreven. KDEPrint is geen apart programma. Het is het nieuwe afdrukraamwerk voor KDE 2.2. KDEPrint is een tussenlaag tussen KDE- of andere toepassingen en het geselecteerde (en geïnstalleerde) afdruksubsysteem van uw besturingssysteem (OS).
Er moet worden opgemerkt dat zowel de ontwikkelaar van deze toepassing en de auteur van dit document het meest bekend zijn met CUPS als afdruksubsysteem. Op dit moment is CUPS het best ondersteunde afdruksubsysteem en is het best gedocumenteerd.
Dit handboek is werk in uitvoering, in latere versies van KDEPrint en uitgaves van dit handboek zullen andere afdruksystemen beter ondersteund en uitgediept worden.
Zelfs als uw afdruksysteem nog niet zo goed ondersteund wordt, wordt u in de tussentijd al aangemoedigd om de module Afdrukbeheer in KControl te bekijken. U zult zien dat het vrij eenvoudig in het gebruik is, onafhankelijk van het afdruksubsysteem dat u gebruikt.
Lauri Watts, het KDE-documentatieteam
In dit hoofdstuk wordt een technisch overzicht van KDEPrint gegeven dat niet-programmeurs moeten kunnen begrijpen.
KDEPrint is een nieuw en revolutionair hulpmiddel voor eenvoudige toegang tot afdrukservices voor zowel KDE-gebruikers als KDE-ontwikkelaars.
U kunt de functies van KDEPrint op verschillende manieren aanroepen: met de Afdrukbeheerder in KControl, door middel van het commando kprinter of via het dialoogvenster dat verschijnt als u iets wilt afdrukken.
KDEPrint is geen vervanging voor het afdruksubsysteem zelf. KDEPrint verzorgt dus niet het spoolen en houdt zich niet bezig met de basisverwerking van PostScript® of andere afdrukgegevens.
KDEPrint is een tussenlaag tussen het spoolen en het (geïnstalleerde) afdruksubsysteem dat de gegevens verwerkt, en de toepassing die wil afdrukken. KDEPrint verschaft een algemene interface voor KDE-ontwikkelaars en KDE-gebruikers naar verschillende ondersteunde afdruksubsystemen. Daarbij is het naar uw wensen aan te passen en erg instelbaar.
KDEPrint is gemakkelijk voor zowel KDE-ontwikkelaars als -gebruikers. Ontwikkelaars kunnen, met minimale wijzigingen, hun programma's poorten voor gebruik van KDEPrint in plaats van het oude afdruk“systeem” van Qt™. Gebruikers kunnen zonder veel moeite kun afdruksubysteem kiezen en instellen.
Voor nieuwe KDE-gebruikers: Qt™ is de basisbibliotheek en grafische toolkit die wordt gebruikt door alle KDE-toepassingen. Qt™ wordt ontwikkeld door TrollTech, een softwarefabrikant uit Noorwegen.
KDEPrint heeft verschillende gezichten voor verschillende soorten mensen.
KDEPrint verschaft gebruikers en/of beheerders, afhankelijk van hun rechten, toegang tot afdruksubsystemen (CUPS, LPD, RLPR, LPRng, PDQ, enzovoort) met een grafische gebruikersinterface (GUI) van KDE. Met KDEPrint kunnen zij afdrukken en taken, printers en de printerdaemon beheren, en dat alles op een eenvoudige manier.
Ervaren gebruikers zullen de mogelijkheid waarderen om welke filter dan ook voor afdrukgegevens tussen de uitvoer van de toepassing en de invoer te gebruiken voor het gekozen afdruksubsysteem. Enige voorbeelden hiervan zitten standaard in KDEPrint. Dit komt ergens anders aan de orde.
Wanneer een ontwikkelaar voor KDE printertoegang wil verschaffen voor zijn/haar toepassing, schrijft diegene de afdrukfuncties niet vanuit het niets. Voor KDE 2.2 werd dit gedaan door de klasse QPrinter
, een bibliotheekfunctie van de toolkit Qt™. Deze klasse maakte gebruik van de ouderwetse “Line Printer Daemon” (LPD). De bibliotheek KDEPrint is daarentegen gebaseerd op het modernere Common UNIX® Printing System (CUPS), waarbij tegelijkertijd compatibiliteit wordt gehouden met LPD en andere oudere (of minder uitgebreide) afdruksubsystemen. KDEPrint zet zijn deuren ook open voor nieuwe ontwikkelingen in de toekomst.
KDE-ontwikkelaars die de nieuwe klasse KDEPrint in hun toepassingen willen gebruiken hoeven slechts minimale wijzigingen door te voeren: bij elke aanroep van QPrinter
hoeft dit alleen worden gewijzigd in KPrinter
. Door één (!) letter te wijzigen op een paar plekken is het gebeurd; de toepassing kan gebruik maken van alle mogelijkheden van de nieuwe KDEPrint-bibliotheek.
Meer ambitieuze ontwikkelaars of ontwikkelaars met speciale behoeften kunnen meer: ondanks het functierijke raamwerk van KDEPrint is het nog steeds mogelijk om het dialoogvenster "Afdrukken" van een toepassing aan te passen door een extra tabblad toe te voegen, waar de uitbreidingen tot de standaard versie van KDEPrint zich direct thuis voelen.
De laatstgenoemde mogelijkheid wordt nog niet veel gebruikt in KDE, omdat de meeste ontwikkelaars nog niet helemaal bekend zijn met de kracht van KDEPrint. U kunt hier in de toekomst meer van verwachten. Een voorbeeld hiervan dat ik heb gevonden is de toepassing KCron. U kunt hiermee de “crontab” bewerken met een grafische omgeving. De ontwikkelaars hebben een afdrukfunctie ingebouwd waarmee u (of de gebruiker root
) kunt kiezen of u de hele tabel wilt afdrukken (dus voor alle gebruikers) of alleen het deel dat is geselecteerd. U kunt in de volgende schermafdrukken zien wat dit voor effect heeft op KDEPrint.
Deze schermafdruk toont een voorbeeld van KCron zelf.
Het dialoogvenster om de afdrukopties voor KCron in te stellen: het extra tabblad genaamd Cron-opties komt van KCron zelf, en dus niet van KDEPrint. Het is een speciale uitbreiding die door de KCron-ontwikkelaars is toegevoegd en komt niet van KDEPrint maar wordt erdoor uitgevoerd. Ontwikkelaars van andere toepassingen zijn vrij om hun eigen tabbladen te implementeren als ze vinden dat dat nodig is.
Toevoeging van KCron aan het KDEPrint-dialoogvenster.
De eenvoudig te gebruiken interface van KDEPrint naar alle ondersteunde afdruksubsystemen werkt natuurlijk niet de traditionele zwakke plekken van deze systemen weg. Maar er worden wel enkele haken en ogen weggewerkt. Elke gebruiker kan een apart afdruksubsysteem gebruiken op dezelfde computer. Een gebruiker kan zelfs nog van afdruksubsysteem wijzigen net voordat hij/zij begint met afdrukken (dit is mogelijk omdat de verschillende subsystemen op zo'n manier zijn geïnstalleerd dat ze elkaar niet in de weg zitten).
De meeste UNIX®-gebruikers zijn gewend om af te drukken met LPD. LPD verschaft echter slechts basisfunctionaliteit, is zeer inflexibel en maakt geen gebruik van de vele mogelijkheden van moderne afdruksubsystemen zoals CUPS. Waar het op afstand afdrukken betreft heeft LPD over elke afstand (net als elk protocol op TCP/IP gebaseerd) gebrek aan bidirectionele communicatie, authenticatie, toegangsbesturing en ondersteuning voor cryptografie.
Als KDEPrint gebruik maakt van CUPS wordt het volgende ondersteund:
Het LAN doorzoeken naar beschikbare printers;
Basic- en Digest-authenticatie en authenticatie op basis van certificaat;
Toegangsbesturing op basis van IP-adressen, netadressen, netmaskers, host- en domeinnamen;
128-bit TLS- of SSL3-cryptografie van afdrukgegevens om afluistering te voorkomen (of het in elk geval een stuk moeilijker te maken).
Dit maakt KDEPrint tot een veel robuuster en betrouwbaarder oplossing dan de oude LPD.
U kunt op vier verschillende manieren toegang verkrijgen tot KDEPrint of delen ervan:
Via uw toepassingen: u kunt het dialoogvenster "Afdrukken" oproepen door Bestand+Afdrukken... te kiezen of door op de knop met het printerpictogram te klikken.
Via het commando kprinter in een terminal, Konsole-venster of met de opdracht Commando uitvoeren...: hiermee wordt ook het dialoogvenster "Afdrukken" geopend.
Met de knop om zo KControl te starten, hierna kiest u Systeem+Afdrukbeheerder in het menu. Hiermee wordt het beheerscherm van KDEPrint geopend dat deel uit maakt van het KDE Configuratiecentrum. U kunt vervolgens ook naar andere delen van KControl gaan.
Door vanaf de commandoregel (Konsole of mini-CLI ) het volgende te typen: kcmshell
. Hiermee wordt het deel van KDEPrint uit KControl geopend waarmee u uw instellingen kunt wijzigen. printers
Het dialoogvenster van kprinter wordt gestart vanuit het venster Commando uitvoeren.
Dit is een tekening, gemaakt in Kivio, van het dialoogvenster van kprinter dat verschijnt als het is opgestart. U kunt ten alle tijden een nieuwe printer toevoegen door op de knop met opschrift Assistent te klikken.
Dialoogvenster van kprinter
Het nieuwe KDEPrint-systeem heeft meer dan één hoogtepunt. Als u in het verleden gewerkt hebt in een omgeving die niet helemaal perfect is wat afdrukken betreft, bekijk dan eens wat voor baat u hebt bij gebruik van KDEPrint.
KDEPrint heeft een “Assistent printer toevoegen”. Deze assistent helpt u bij het toevoegen en installeren van een printer. Dit kunt u natuurlijk ook handmatig doen.
KDEPrint helpt u bij het “vinden” van printers. Het biedt de mogelijkheid de omgeving te scannen op beschikbare apparaten en wachtrijen. Dit werkt bij netwerkverbindingen waarbij TCP-printers (AppSocket, ook wel bekend onder de naam HP® JetDirect® of IPP) of SMB/Samba-printers (“gedeelde” Windows®-printers) worden gebruikt, en gedeeltelijk voor printers die direct aangesloten zijn over een parallelle, seriële of USB-verbinding.
Met deze assistent is het installeren en hanteren van de stuurprogramma “een eitje”. Selecteren, instellen en testen is nu makkelijker dan ooit tevoren op welk Linux®-achtig systeem dan ook.
De afdruktakenviewer wordt automatisch opgestart door kprinter. U kunt het venster in het systeemvak plaatsen op het KDE-paneel. De afdruktakenviewer biedt u volledig taakbeheer, indien dit wordt ondersteund door het afdruksubsysteem.
U hebt de mogelijkheid om:
Taken te behouden en vrij te geven;
Wachtende taken naar een andere printer te verplaatsen;
Taken die wachten of verwerkt worden te annuleren.
In de schermafdruk van de afdruktakenviewer van KDEPrint kunt u zien welke informatie u krijgt: taak-ID, doelprinter, naam van de taak, taakeigenaar, de status van de taak en taakgrootte. In de volgende uitgave van KDEPrint zult u ook informatie verkrijgen over het aantal pagina's (berekend door CUPS; zie ook het hoofdstuk over het tellen van pagina's voor meer informatie over diens verdiensten en beperkingen).
Een schermafdruk van de afdruktakenviewer van KDEPrint
Een alternatieve manier om dezelfde informatie te verkrijgen (met dezelfde hoeveelheid besturingsmogelijkheden) is via het KDE Configuratiecentrum, waarbij u gaat naar Systeem+Afdrukbeheerder . Als u de Printerdetails niet ziet, klik dan met de op de achtergrond van het venster en selecteer Printerdetails tonen/verbergen. Ga vervolgens naar het tabblad Taken. U ziet het volgende:
KDEPrint gebruikt verschillende modules om de interface naar de mogelijke afdruksubsystemen waar te maken. Niet alle modules zijn op dit moment volledig doorontwikkeld, maar met de volgende afdruksubsystemen hebt u basisafdrukfunctionaliteit:
LPD (BSD-stijl);
LPRng (Red Hat®, wanneer u slechts zijn BSD-stijl-subset gebruikt);
RLPR (een hulpmiddel voor LPR op de commandoregel, heeft geen printcap
-bestand nodig);
“Externe” afdrukcommando's (Netscape®-achtig).
Het belangrijkst is dat er al volledige ondersteuning is voor CUPS. Modules voor andere afdruksubsystemen, zoals PLP, PPR en PDQ komen waarschijnlijk later beschikbaar.
KDEPrint maakt KDE een stuk flexibeler. Het zorgt voor keuzevrijheid voor KDE 2.2-gebruikers. Om de verschillende afdruksubsystemen te gebruiken moeten ze, uiteraard, onafhankelijk van KDE zijn geïnstalleerd. In eerdere versies moesten gebruikers het doen met de oude afdruksubsystemen van LPD-stijl. Nu kunnen ze zelfs CUPS gebruiken. In de toekomst zal er eenvoudige integratie met nieuwe subsystemen komen wanneer ze verschijnen.
Enkele specifieke functies van KDEPrint zijn afhankelijk van het gekozen afdruksubsysteem. Dit kan zijn omdat zo'n functie alleen daar is geïmplementeerd; onthoud dat KDEPrint een tussenlaag is tussen KDE-toepassingen en het afdruksubsysteem, en geen vervanging is voor een afdruksubsysteem zelf. Het kan echter ook zijn omdat KDEPrint nog geen interface heeft geïmplementeerd voor alle functies van elk subsysteem.
Andere specifieke functies van KDEPrint die onafhankelijk zijn van het gekozen afdruksubsysteem zijn voor alle subsystemen beschikbaar. Op het moment bestaan er “speciale” of “virtuele” printers en enkele algemene “voorfilters”.
U kunt in het dialoogvenster "Afdrukken" kiezen dat u een afdrukvoorbeeld wilt bekijken. Hiervoor wordt het af te drukken bestand door filters gevoerd die het geschikt maken om met KGhostView getoond te worden.
Naast deze extra functies van KDEPrint bestaan er een paar “speciale” of “virtuele” printers.
Deze speciale printers kunnen:
Uw document converteren naar een PDF-bestand door middel van een extern programma.
Uw document verzenden als een PDF-bestand, bijgevoegd bij een e-mail.
Uw document opslaan als PostScript®-bestand.
Uw document verzenden als fax door een beschikbaar extern programma zoals Hylafax.
Deze “speciale” printers staan in de lijst in het dialoogvenster "Afdrukken" voor gebruikers alsof ze “normale” printers zijn. Ze zijn geheel instelbaar per gebruiker apart.
KDEPrint verschaft een raamwerk waarmee u uw eigen “voorfilters” kunt definiëren en instellen. Deze voorfilters hebben effect voordat het document is doorgevoerd naar uw afdruksubsysteem voor verdere verwerking, maar nadat de afdrukbestanden (als PostScript®, platte tekst of anders) zijn aangemaakt door uw toepassing.
Er zijn al een paar handige filters vooringesteld. Dit zijn:
De filter voor “meerdere pagina's per vel”;
De “enscript”-tekstfilter;
En drie filters die bij het afdrukken van pamfletten helpen.
U kunt uw eigen filters maken op basis van elk mogelijk externe programma dat PostScript®-, platte tekst- of afbeeldingsbestanden kan verwerken tot één van deze formaten.
Deze filter s worden ingesteld door middel van XML-bestanden. Hiermee wordt het uitbreiden van het concept erg eenvoudig voor ervaren ontwikkelaars, maar de configuratie voor de eindgebruiker geschiedt ook met een goed te begrijpen grafische gebruikersinterface. Wees dus niet bang, het is niet nodig om XML te leren voor KDEPrint!
Dit is een vooringestelde filter die meegeïnstalleerd wordt met KDEPrint. De filter maakt een gewijzigde PostScript®-uitvoer aan van een PostScript®-invoer, waarbij 1, 2 of 4 logische pagina's worden afgedrukt op een enkel vel papier.
Dit is een vooringestelde filter die meegeïnstalleerd wordt met KDEPrint. De filter maakt een PostScript®-uitvoer aan met als invoer een tekstbestand, met syntaxisaccentuering bij broncode, mooie uitvoering en instelbare paginaranden en -koppen.
Als uw printer in staat is duplex-uitvoer te produceren, waarbij one-pass- of two-pass-technologie wordt gebruikt, kunt u één of een combinatie van “pamflet”-filters gebruiken.
Zorg er bij duplex-printers voor dat u de duplex-keuze gebruikt die de uitvoer “draait” rond de korte rand van het blad. Als u vervolgens het afgedrukte blaadje in het midden vouwt wordt uw document omgetovert in een mooi pamflet.
Als u opgescheept zit met een apparaat dat alleen simplex aankan, kunt u hetzelfde doen met twee verschillende filters en een paar extra stappen.
Gebruik afhankelijk van uw model eerst de filter voor het afdrukken van de voorkant, stop het papier vervolgens in de juiste volgorde terug in het papiervak om ook de pagina's af te drukken op de achterkant. Vervolgens kunt u het vouwen om een pamflet te maken.
KDEPrint bevat een module voor CUPS. CUPS (“Common UNIX® Printing System” — http://www.cups.org/) is de geavanceerdste, krachtigste en flexibelste van alle afdruksubsystemen voor UNIX® en andere UNIX®-achtige besturingssystemen. CUPS is nog steeds vrij nieuw, maar is gebaseerd op IPP, het Internet Printing Protocol, de nieuwe opkomende standaard voor de toekomst van het netwerkafdrukken. CUPS is duidelijk het favoriete afdruksubsysteem voor Michael Goffioul, de hoofdontwikkelaar van KDEPrint.
Ervaren KDE-gebruikers zijn wellicht al bekend met Michaels hulpprogramma's qtcups en kups (mede-ontwikkeld door Jean-Eric Cuendet). Dit waren, tot op dit moment, de grafische schillen voor CUPS en hadden een sterke relatie tot KDE.
Beide hulpprogramma's worden waarschijnlijk nog steeds veel gebruikt. Voor hen die ze niet kennen staat er hieronder korte uitleg.
qtcups was een grafische schil voor de afdrukcommando's lp en lpr die door CUPS geïnstalleerd zijn. Door qtcups te gebruiken opende zich een dialoogvenster. Hiermee was het mogelijk confortabel uw printer en -instellingen te bepalen. qtcups werkte vanaf de commandoregel of vanuit toepassingen, wanneer bij de betreffende toepassing het afdrukcommando instelbaar was.
kups was een grafisch hulpprogramma om de administratietaken voor uw CUPS-server en het hart van de CUPS-daemon uit te voeren. Printers konden worden toegevoegd, verwijderd, gewijzigd, ingesteld, gestart en gestopt. Afdruktaken konden worden geannuleerd, verwijderd, verplaatst, gestopt en herstart, en de instellingen van de daemon konden worden ingesteld en deze kon worden opgestart, gestopt en herstart.
De CUPS-module van KDEPrint bevat nu alle (en meer) functies die qtcups and kups boden in eerdere KDE-versies.
In plaats van qtcups gebruikt u nu het commando kprinter. En in plaats van kups zult u vanaf nu waarschijnlijk kcmshell printers gebruiken.
Met de CUPS-module van KDEPrint kunt u het afdruksubsysteem ook volledig besturen, net als met kups hiervoor mogelijk was. U kunt uw CUPS-daemon starten, stoppen en instellen. U kunt ook “printers” (d.w.z. printerwachtrijen) en “printerinstanties” starten, stoppen, toevoegen en verwijderen. Printerinstanties zijn printerwachtrijen die naar fysiek dezelfde printer verwijzen maar met verschillende standaardinstellingen of afdrukopties.
De CUPS-module van KDEPrint verschaft toegang tot een “grafisch afdrukcommando”, net als qtcups vroeger deed.
U kunt kprinter in elk mogelijke toepassing gebruiken waarmee u uw afdrukcommando zelf kunt instellen, zelfs bij niet-KDE-toepassingen. Voorbeelden hiervan zijn Netscape® en StarOffice, maar niet de meeste KDE-toepassingen van voor versie 2.2.
Dit is een schermafdruk die laat zien hoe u het nieuwe commando kprinter kunt gebruiken in plaats van het ouderwetse lpr... Natuurlijk dient kprinter in de omgevingsvariabele $PATH
te staan. U kunt ook het volledige pad geven in het dialoogvenster, bijvoorbeeld
. Netscape® onthoudt dit en in het vervolg krijgt u het kprinter-dialoogvenster om uw afdruktaken in te stellen./opt/kde/bin/kprinter
U kunt kprinter ook vanaf de commandoregel oproepen waarna u het volgende dialoogvenster verschijnt:
Zorg ervoor dat u minimaal het bestand aangeeft dat u wilt afdrukken vanaf de commandoregel: kprinter
. Hiermee wordt de CUPS Software Administrator Manual aan het kprinter-dialoogvenster doorgegeven, dat verschijnt met de standaardprinter voorgeselecteerd./usr/share/doc/packages/cups/sam.pdf
Wanneer u een specifieke printer wilt voorselecteren vanaf de commandoregel dient u de optie -d
te gebruiken, bijvoorbeeld kprinter
. U kunt nog steeds de printer -d DANKAcolorC2000
/home/kurt/linuxtag2001-paper.ps
DANKAcolorC2000
deselecteren om een andere te kiezen.
U kunt kprinter
echter niet aanroepen zonder een af te drukken bestand in de hoop dat er een dialoogvenster verschijnt om een bestand te kiezen. Dit is een functie die pas in de volgende versie zal worden geïmplementeerd.
Met kprinter kunt u de mogelijkheden van uw printer volledig benutten. U hebt een apparaat-specifieke zogenaamde PPD (PostScript® Printer Description) nodig om CUPS tot alle functies in staat te stellen. U kunt hier meer over lezen in de paragraaf “Apparaat-afhankelijke afdrukopties”.
U beschikt op dit moment over de eerste versie van KDEPrint, die nu al veel mogelijkheiden bevat. Deze versie is, uiteraard, volledig bruikbaar om af te drukken. U denkt misschien zelfs dat het “nog nooit zo eenvoudig was” (zelfs niet in de dagen dat u nog gedoemd was Microsoft® Windows® te gebruiken).
In de toekomst zal KDEPrint nog beter worden. Het zal KDEPrint beter afgaan bij het “detecteren” van uw afdruksysteem zelf. KDEPrint doet het al vrij goed als u CUPS op uw systeem gebruikt. Maar in veel gevallen zult u KDEPrint zelf moeten vertellen wat u gebruikt, als u een werkend afdruksysteem wilt onderhouden.
De belangrijkste verbetering in de nabije toekomst zal het voltooien van de invoertoepassing LPRng zijn. Dit staat op het moment nog in de kinderschoenen. Het is beperkt tot het klassieke LPD-deel van LPRng.
Het zal ook mogelijk zijn om printers direct vanaf het dialoogvenster "Afdrukken" toe te voegen, zonder eerst naar KControl te gaan.
Enkele kleinere verbeteringen die al bedacht zijn:
Een dialoogvenster toevoegen om het bestand te selecteren vanaf het venster van kprinter om het combineren van extra bestanden aan de huidige afdruktaak toe te staan;
Een “geschiedenisknop” toevoegen aan het venster van KJobViewer, en ook een kolom die het aantal pagina's aangeeft dat CUPS voor de afdruktaak heeft berekend.
Ten slotte komt er een “IO-slave” die toegang moet geven tot uw afdruksubsysteem via bijvoorbeeld Konqueror. Hiermee zal het mogelijk zijn om uw afdruksubsysteem vanuit Konqueror te bekijken met een URL als snelkoppeling zoals print://printers/printername
. Met een KPart komt er een virtuele map bij het onderdeel services van het navigatiepaneel van Konqueror waardoor u beschikt over een geïntegreerde manier om uw afdruksubsysteem te bekijken en te beheren via het URL print:/manager
.
Neem contact op met Michael Goffioul ((kdeprint AT swing.be)
) als u gebruikers- of ontwikkelaarssuggesties hebt.
In dit hoofdstuk kunt u een stuk theoretische achtergrond lezen over afdrukken in het algemeen, en over CUPS in het bijzonder. Wanneer u dit hoofdstuk niet denkt nodig te hebben, kunt u dit overslaan en direct naar het volgende hoofdstuk gaan. Het is mogelijk dat u op een bepaald punt toch terugslaat naar dit hoofdstuk, omdat het soms nodig is de theorie te begrijpen om een praktisch probleem op te lossen.
Afdrukken is één van de gecompliceerdere onderdelen in de IT-technologie.
Een tijd terug moest elke ontwikkelaar van een programma dat kon afdrukken zelf zijn eigen printerstuurprogramma's schrijven. Dat was vrij ingewikkeld om te doen, omdat elk programma een ander bestandsformaat had. Zelfs programma's met hetzelfde doel, bijvoorbeeld tekstverwerking, konden elkaars formaat niet inlezen. Er was geen algemene interface tot alle printers, zodat programmeurs vaak maar een paar modellen konden ondersteunen.
Als er een nieuw apparaat op de markt verscheen, moesten de auteurs van het programma een nieuw stuurprogramma schrijven, wilden ze dat hun programma het ondersteunde. Evenzo was het voor fabrikanten onmogelijk om ervoor te zorgen dat hun apparaat werkte onder elk bekende programma (hoewel het er toen wel minder waren).
Als een systeembeheerder tien toepassingen wilde hebben en twaalf soorten printers, zat hij of zij opgescheept met 120 stuurprogramma's. Het werd dus hoognodig dat er een algemene interface kwam tussen toepassingen en printers.
Toen er voor het eerst “Page Description Languages” (paginabeschrijvingstalen) verschenen, deze beschrijven de grafische uitvoering van inkt en tint op vellen papier (of andere uitvoerapparaten, zoals monitors, fotozetmachines, enz.) op een algemene manier, werd er een flink gat gevuld.
Eén zo'n ontwikkeling was PostScript® van Adobe. Hiermee kon een toepassingsprogrammeur zich kon concentreren op het laten aanmaken van een beschrijving van de af te drukken pagina in PostScript®, waarbij printerontwikkelaars ervoor konden zorgen dat hun apparaten PostScript® konden inlezen.
Natuurlijk werden er na een tijdje ook andere beschrijvingsmethoden ontwikkeld. De belangrijkste concurrenten voor PostScript® waren PCL (“Print Control Language”, van Hewlett-Packard®), “ESC/P” (van Epson) en GDI (“Graphical Device Interface”, van Microsoft®).
De beschikbaarheid van deze beschrijvingstalen maakte het veel eenvoudiger en voorzag iedereen van verdere ontwikkelingen. Het feit dat er nog steeds verschillende, incompatibele en concurrerende beschrijvingstalen bestonden hield het echter moeilijk genoeg voor gebruikers, systeembeheerders, ontwikkelaars en fabrikanten.
PostScript® wordt vooral gebruikt in professionele afdrukomgevingen als PrePress en de drukindustrie. In UNIX®- en Linux®-domein is PostScript® de absolute standaard als PDL. Hier maakt vrijwel elke toepassing een PostScript®-beschrijving van de pagina's aan wanneer u klikt op de afdrukknop. Hieronder ziet u een eenvoudig voorbeeld van (handgemaakte) PostScript®-code, dat twee eenvoudige vormen beschrijft.
Voorbeeld 4.1. PostScript®-code
%!PS 100 100 moveto 0 50 rlineto 50 0 rlineto 0 -50 rlineto closepath .7 setgray fill % first box over; next 160 100 moveto 0 60 rlineto 45 10 rlineto 0 -40 rlineto closepath .2 setgray fill
Dit voorbeeld vraagt de denkbeeldige PostScript®-“pen” om een bepaalde vorm te tekenen die vervolgens gevuld moet worden met verschillende tinten grijs. Het eerste deel laat zich in begrijpelijk Nederlands vertalen als: “Ga naar coördinaat (100,100), trek een lijn met lengte 50 omhoog, vervolgens één vanaf daar naar rechts, dan naar beneden, en sluit vervolgens de vorm. Vul de zojuist getekende vorm daarna met 70% grijs.”
Natuurlijk kan PostScript® veel ingewikkeldere dingen doen dan in dit simpele voorbeeld gebeurt. Het is een volledige en volwassen programmeertaal met verschillende operatoren en functies. U kunt zelfs PostScript®-programma's schrijven om de waarde van pi te berekenen, om een harde schijf te formatteren of een bestand te beschrijven. De belangrijkste kracht van PostScript® ligt echter bij het beschrijven van grafische objecten op een pagina: PostScript® kan grootte wijzigen, spiegelen, verplaatsen, transformeren, draaien, vrijwel alles wat u zich maar kunt voorstellen - als het maar op papier kan staan: letters plaatsen in verschillende lettertypen en stijlen, figuren, vormen, vullingen, kleuren, lijnen, punten, rasters tekenen...
Een PostScript®-bestand is een weergave van één of meer af te drukken pagina's op een vrij abstracte manier. Het is bedoeld om pagina's op een apparaat-onafhankelijke manier te beschrijven. PostScript® is niet direct “zichtbaar”; het bestaat alleen de harde schijf in in het geheugen als een gecodeerde weergave voor afdruktaken.
Op papier ziet u bijna altijd “rasterafbeeldingen”. Uw hersenen geven u echter de suggestie dat u een lijn ziet: neem maar eens een goed vergrootglas en u zult zien dat er honderden puntjes op het papier staan (een uitzondering vormen de lijnen van “pen-plotters”). Dit is het enige wat de printers van vandaag op papier kunnen zetten: simpelweg puntjes van verschillende kleur, grootte en resolutie, zodat er een complete afbeelding gevormd wordt, gecomposeerd van verschillende bitmappatronen.
Elke printer wil zo'n rasterafbeelding op een eigen manier. Kijk maar eens naar inktjetprinters: door verschillen in resolutie, het aantal inktpatronen (de beste printers hebben er zeven nodig, goedkopere misschien maar drie), het aantal spuiten die tegelijkertijd inkt kunnen afgeven (sommige printerkoppen hebben er meer dan honderd!), het gebruikte “vermengingsalgoritme” en veel andere dingen is het uiteindelijke rasterformaat en overdrachtsvolgorde zeer afhankelijk van het exacte model.
Terug in de tijd van de “Line Printer Daemon” waren printers machines die rijen ASCII-tekst mechanisch hamerden op lange stukken papier, dat zich gevouwen als een “zig-zag-slang” van papier uit een kartonnen doos onder de tafel wurmde... Wat een verschil met vandaag!
Voordat een rasterafbeelding op papier kan worden gezet, moet deze berekend worden vanuit de abstracte PostScript®-weergave. Dit is een proces dat erg computerintensief is. Het wordt “Raster Imaging Process” genoemd, ofwel “RIP”.
Bij PostScript®-printers wordt RIP verzorgd door het apparaat zelf. Om iets af te drukken wordt er een PostScript®-bestand naartoe verzonden. De “Raster Imaging Processor” (wordt ook RIP genoemd) in de printer is verantwoordelijk voor (en gespecialiseerd in) de taak om het PostScript®-bestand te interpreteren en dit als rasterafbeelding op papier te zetten.
Kleinere PostScript®-apparaten hebben een hardware-RIP ingebouwd; deze is geplaatst op een speciale chip. Grote professionele printers hebben de RIP vaak geïmplementeerd als een software-RIP op een bepaalde snelle UNIX®-computer; vaak een Sun SPARC Solaris- of een SGI™ IRIX®-machine.
Maar wat nu, als u niet zo veel geluk hebt en het met een niet-PostScript®-printer moet doen?
Hiervoor gebeurt RIP voordat u het document naar het afdrukapparaat stuurt. U dient het PostScript®-bestand dat door uw toepassing op de hostcomputer (de afdrukcliënt) is aangemaakt zelf te verwerken tot rasterafbeelding. Hiervoor heeft u het exacte rasterformaat nodig van de printer in kwestie.
In andere woorden: als u er niet vanuit kunt gaan dat de printer het PostScript®-bestand zelf begrijpt en kan interpreteren, wordt het een stukje ingewikkelder. U hebt software nodig die deze zaken voor u oplost.
Dit is nou precies wat het alomtegenwoordige ghostscript-pakket doet bij de meeste Linux®-, *BSD- en andere UNIX®-computers die afdrukken naar niet-PostScript®-printers: ghostscript is een PostScript®-interpreter, een software-RIP die voor veel verschillende apparaten werkt.
Voor het aanmaken van rasterbitmaps uit PostScript®-invoer gebruikt ghostscript het concept “filters”. Er bestaan veel verschillende filters voor ghostscript, sommige zijn gespecialiseerd in een bepaald printermodel. ghostscript-filters die gespecialiseerd zijn in bepaalde apparaten werden vaak ontwikkeld zonder toestemming of hulp van de fabrikant. Zonder toegang tot de specificaties en documentatie was het een zeer langdurig proces om de protocollen en gegevensformaten van het apparaat uit te vinden.
Niet alle ghostscript-filters werken helemaal juist voor hun printer. Sommige nieuwere filters, bijvoorbeeld de stp-filter van het project Gimp Print produceren uitstekende resultaten waardoor fotografische kwaliteit bereikt wordt die gelijk staataan de concurrerende stuurprogramma's voor Microsoft® Windows®, of deze zelfs overtreffen.
De meeste toepassingen voor UNIX® en Windows® produceren om af te drukken PostScript®-bestanden. Filters zijn hier de ware werkpaarden voor het afdruksubsysteem. Ze verwerken PostScript®-invoer tot bitmaps voor niet-PostScript®-toestellen.
CUPS gebruikt zijn eigen filters, maar toch is het filtersysteem gebaseerd op Ghostscript. De filters pstoraster en imagetoraster zijn namelijk direct afgeleid van de Ghostscript-code. CUPS heeft de hele kern van deze code georganiseerd en gestroomlijnd en heeft dit in een paar duidelijke, aparte modules geplaatst.
Het volgende stroomschema (gemaakt met hulp van Kivio) geeft u een overzicht van de filters en backends binnen CUPS en laat zien hoe ze met elkaar samenwerken. Het proces speelt zich van boven naar beneden af. Backends zijn speciale filters: ze converteren geen gegevens naar een ander formaat maat ze sturen de gegevens die al in het juiste formaat staan naar de printer. Elk overdrachtprotocol heeft een eigen backend.
Naast het moeilijke filteren om een voor afdrukken klaargemaakte bitmap te maken, heeft alle software die kan afdrukken een spool-mechanisme nodig: dit moet om verschillende taken van verschillende gebruikers voor verschillende printers en verschillende filters op te stellen en naar de juiste printer te sturen. De afdrukdaemon zorgt hier volledig voor.
De daemon zorgt ervoor dat alles in orde blijft en is verantwoordelijk voor het taakbeheer: gebruikers moeten hun taken (niet die van andere mensen) kunnen annuleren, stoppen, herstarten, enzovoort.
Nu u weet hoe een PostScript®-bestand (dat de pagina voor het grootste deel apparaatonafhankelijk beschrijft) wordt verwerkt tot een rasterafbeelding vraagt u zich wellicht af: “Er bestaan dus verschillende soorten uitvoerapparaten voor rasterafbeeldingen: ze verschillen ten eerste in resolutie, ten tweede zijn er verschillende papiergrootten, en ten slotte zijn er heel veel mogelijkheden voor de afwerking (duplex, pamfletten, geponste en gestapelde uitvoer met verschillende bakken gekleurd papier, enzovoort). Hoe past dit dan in het model van het apparaat-onafhankelijke PostScript®?”
Het antwoord omvat de zogenaamde PostScript® Printer Description-bestanden (PPD-bestanden). Een PPD-bestand beschrijft alle apparaat-afhankelijke functies die kunnen worden gebruikt voor het model. Het bestand bevat ook de gecodeerde commando's die gebruikt moeten worden om aparte functies van het apparaat aan te roepen. PPD's zijn echter geen gesloten boek voor ons, het zijn gewone tekstbestanden.
PPD's zijn “uitgevonden” door Adobe om het voor fabrikanten gemakkelijk te maken om hun eigen functies in PostScript®-printers te implementeren, waarbij er tegelijkertijd een standaardmanier wordt behouden. Het PPD-formaat is goed gedocumenteerd door Adobe. Hun specificatie is de enige standaard die gebruikt wordt.
Onthoud dat geavanceerd afdrukken met PostScript® eigenlijk alleen ontwikkeld werd voor gebruik onder Microsoft® Windows® en Apple Mac®. Alle geavanceerde functies voor afdrukken op moderne apparaten waren lange tijd simpelweg niet beschikbaar voor Linux® en UNIX®. CUPS heeft dit beslist veranderd. CUPS is zowat afhankelijk van PPD's en daarom kunnen bestaande PPD's volledig benut worden door alle systemen die onder CUPS draaien.
Met PPD's kunnen printerfabrikanten apparaat-afhankelijke hardwarefuncties toevoegen bij hun producten, bijvoorbeeld functies als duplex, stapelen, ponsen, afwerking, enzovoort. Het printerstuurprogramma laadt dit PPD-bestand als extra configuratiebestand. Het stuurprogramma verneemt de beschikbare opties en hoe deze aangeroepen kunnen worden en toont deze grafisch aan de gebruiker. Door dit mechanisme kunt u nog steeds “apparaatonafhankelijke” PostScript®-bestanden afdrukken waarbij de apparaat-afhankelijke afwerkingsopties toegevoegd worden aan het PostScript®-bestand dat door een toepassing is aangemaakt.
PPD's werden eigenlijk nooit gebruikt bij UNIX®- en Linux®-systemen. De fabrikanten die de PPD's maakten hadden ze eigenlijk nooit voor andere dan de van origine ondersteunde besturingssystemen Microsoft® Windows® en Mac® OS bedoeld. Door een fantastische zet van CUPS om de bestaande PPD-specificatie te omarmen en te gebruiken verschaft CUPS alle functies van moderne printers voor gebruikers van Linux® en Linux®-achtige systemen. KDEPrint maakt dit nog gemakkelijker dan de CUPS-ontwikkelaars ooit durfden te dromen.
Als het om PostScript®-printers gaat is het mogelijk om de originele Windows®-PPD's te gebruiken die uitgegeven zijn door de fabrikanten. Ze kosten over het algemeen geen geld, u kunt ze halen van elke Windows®-computer die een PostScript®-stuurprogramma heeft voor het betreffende model, maar ook van de schijfjes die bij de printer zitten. Op Internet bestaan ook veel plaatsen waar u ze kunt vinden.
U weet nu dat PostScript®-printers gebruik kunnen maken van PPD's. Maar hoe zit het dan met niet-PostScript®-printers? CUPS heeft hier een trucje voor bedacht: door hetzelfde formaat en gegevensstructuur gebruiken als bij PostScript® Printer Descriptions (PPD's) voor PostScript®-printers, kunnen de beschikbare afdrukopties voor niet-PostScript®-printers precies hetzelfde beschreven worden. Voor eigen doeleinden heeft CUPS enkele speciale opties toegevoegd (zoals de regel die bepaalt welke filter gebruikt moet worden voor verdere verwerking van het PostScript®-bestand).
De ontwikkelaars konden dus voor alle soorten printers dezelfde software gebruiken om PPD-bestanden voor beschikbare opties te ontleden voor alle soorten printers. Natuurlijk hoefden de CUPS-ontwikkelaars niet te verwachten dat de fabrikanten van niet-PostScript®-printers deze PPD's zelf gingen schrijven. De CUPS-ontwikkelaars moesten ze vanuit het niets maken, wat in het begin erg moeilijk was. Er zijn er meer dan 1000 van beschikbaar door de commerciële versie van CUPS, genaamd ESP PrintPro.
In de tussentijd is er een groot aantal CUPS-specifieke PPD's beschikbaar gekomen. In de meeste gevallen komen ze niet van de printerfabrikanten, maar van ontwikkelaars van vrije software. De CUPS-mensen hebben bewezen dat het werkt, en anderen volgden direct: was het afdrukken onder Linux® en UNIX® een paar jaar geleden nog een rommeltje, nu wordt een groot aantal printers ondersteund, inclusief 7 kleuren-inktjets die uitvoer kunnen geven van fotokwaliteit.
U kunt CUPS-PPD's voor niet-PostScript®-printers op verschillende plaatsen op Internet vinden:
Ten eerste: er is een opslagplaats op www.linuxprinting.org waar u online een “CUPS-O-Matic”-PPD kunt laten aanmaken voor elke printer die al door het traditionele ghostscript-afdrukken werd ondersteund. Hiermee kunt u met weinig moeite overschakelen naar CUPS, als u wilt. Wanneer uw printer het goed deed met de traditionele manier van ghostscript-afdrukken, laat uw stuurprogramma dan door CUPS-O-Matic overzetten naar het CUPS-systeem zodat u het beste van beide werelden krijgt;
Ten tweede: er bestaan al voor 120 printermodellen CUPS-PPD's die door het nieuwe universele stuurprogramma stp worden aangedreven (stond oorspronkelijk voor Stylus Photo). stp wordt nu ontwikkeld door het gimp-print-project; Mike Sweet, de belangrijkste CUPS-ontwikkelaar, begon er mee en is nu beschikbaar via gimp-print.sourceforge.net. Dit stuurprogramma drukt met fotokwaliteit af op vele moderne inkjets en kan zo ingesteld worden om 120 CUPS-PPD's te maken langs zijn eigen compilatie. De modellen HP® Laser- en DeskJet, Epson® Stylus en Photo Color, en enkele printers van Canon® en Lexmark® vallen hieronder;
Ten derde bestaat er een commerciële uitbreiding voor CUPS van de CUPS-ontwikkelaars zelf; dit wordt ESP PrintPro genoemd en omvat meer dan 2.300 printerstuurprogramma's. Er worden bovendien verbeterde versies van de filters imagetoraster en pstoraster meegeleverd.
CUPS maakt het voor fabrikanten zeer eenvoudig om Linux® en UNIX® voor hun modellen te ondersteunen zonder hoge kosten te maken. Het modulaire raamwerk van CUPS zorg ervoor dat elke filter (= stuurprogramma) met weinig moeite gebruikt kan worden voor het hele afdrukraamwerk van CUPS.
U kunt meer lezen over de CUPS-mogelijkheden in de beschikbare CUPS-documentatie op http://www.cups.org/documentation.html en http://www.danka.de/printpro/faq.html. En op http://www.linuxprinting.org/ vindt u een allesomvattende bron voor moeilijkheden voor het afdrukken op Linux® en UNIX®.
Lange tijd waren ontwikkelaars diep ontevreden met de oude vertrouwde LPD. Er werden enkele nieuwe projecten opgezet om het afdrukken te verbeteren; LPRng is daar het beste voorbeeld van. Andere voorbeelden zijn PDQ, PPR, PLP, GNUlpr en RLPR. Maar geen van deze nieuwe ontwikkelingen werd gezien als de grote vervanger, de meeste daarvan waren eigenlijk gewoon een implementatie van dezelfde oude LPD-specificatie met een paar (en soms veel) uitbreidingen, waardoor deze weer incompatibel met elkaar werden.
Toen Grant Taylor, auteur van de Linux Printing HOWTO, opmerkte dat er niet één maar meerdere levensvatbare alternatieven kwamen voor de hooggeëerde LPD van BSD-stijl, riep hij op: LPD must die! in zijn “Veldtocht om de Line Printer Daemon om zeep te helpen”.
Naast de zaken die betrekking hebben op de industrie, hierboven vermeld, kwamen er pogingen om de welbekende beperkingen van LPD te overbruggen. Het begon met commerciële uitbreidingen van de oude LPD, en breidde zich uit met de poging van Hewlett-Packard® om HP® JetDirect in te voeren als standaardprotocol voor afdrukken over een netwerk. Het resultaat: meer incompabiliteiten.
Ten slotte nam er een initiatief om een nieuwe algemene industrie- en IETF-standaard in te stellen vorm aan. De “Printer Working Group” (Printerwerkgroep, afgekort tot PWG), een losse groep ontwikkelaars van hardware, software en besturingssystemen maakte het nieuwe “Internet Printing Protocol”, IPP. IPP versie 1.1 is nu aanvaard als standaard door IETF (Internet Engineering Task Force), en geniet nu eenstemmige ondersteuning door de industrie in Europa, de VS en Japan. De huidige generatie netwerkprinters hebben IPP-ondersteuning ingebouwd boven het traditionele LPR/LPD of JetDirect Printing.
IPP lost voor netwerkbeheerders een groot aantal problemen op. Deze mensen hebben normaal gesproken te doen met netwerkomgevingen van ongelijke soorten en besteden meer dan de helft van hun tijd aan het oplossen van afdrukproblemen.
Door een universele set verzoekfuncties te ontwikkelen voor printers die met IPP overweg kunnen, om bijvoorbeeld bestanden over te zetten en attributen voor taakbeheer in te stellen, is IPP voorbestemd voor alle besturingssystemen. Dit zal echter niet in één dag gebeuren, omdat vele oude afdrukapparaten nog jaren gebruikt zullen worden. Daarom is bij IPP vastgesteld dat alle IPP-implementaties terugwaards-compatibel moeten zijn. CUPS zorgt voor levensvatbaarheid van het afdrukken met IPP in alle omgevingen.
Het grootste voordeel zit in de integratie met de bestaande andere robuuste IP-protocollen. Hoewel het een uitbreiding is voor het zich bewezen hebbende en robuuste HTTP 1.1-protocol, is het, voor zijn speciale taak van het verwerken van afdrukbestanden en gerelateerde gegevens, ook erg eenvoudig om andere standaarden in te voeren zodra ze worden ontwikkeld en gebruikt:
Basic- en digest-authenticatie en authenticatie op basis van certificaat voor gebruikers die toegang willen tot afdrukdiensten;
SSL3- en TLS-cryptografie om gegevens over te brengen;
Bidirectionele communicatie van cliënten met afdrukapparaten met het mechanisme GET en POST van HTTP/IPP;
Integratie van de LDAP-mapdiensten om een consistente database te onderhouden van beschikbare printers, hun mogelijkheiden en kosten per pagina, enzovoort, net als gebruikerswachtwoorden, ACL's, ga zo maar verder;
“Pull”-afdrukken (tegenovergesteld aan het gebruikelijke “push”-model), waarbij een server of printer alleen een URL van een document nodig heeft, waarna deze van Internet-bron wordt afgehaald en wordt afgedrukt.
Hebt u wel eens een demonstratie gezien voor de mogelijkheden van CUPS in het netwerk? U vond het vast indrukwekkend, als u nog niet wist wat u ervan moest verwachten.
Stelt u zich eens voor dat u een systeembeheerder bent van een “LAN”. Om de zaken te testen, hebt u een KDE/CUPS-computer geïnstalleerd met een aantal goed ingestelde en werkende printers: PostScript®-printers, LaserJets, InkJets, BubbleJets, enzovoort. De gebruikers van die KDE-computer zijn er erg blij mee, het was nog nooit zo makkelijk om alle printers volledig te benutten. Het nam twee uur in beslag om alles juist in te stellen... Nu willen de andere 100 gebruikers van het netwerk precies hetzelfde. Zal dat ook weer twee uur duren, voor elk systeem? Dat lukt vast niet voor het einde van het jaar, denkt u niet?
Mis. Door één intstelling te wijzigen bij het eerste CUPS-systeem kunt u er een “server” van maken. Installeer CUPS op vijf andere systemen, maar dan als “cliënt”. Als u vervolgens terugkijkt naar het eerste systeem, zult u zien dat de gebruikers spelen met de instellingen voor alle printers die u eerder voor de “server”had ingesteld. Op een of andere manier zijn de printers verschenen in het afdrukdialoogvenster op alle vijf systemen met CUPS als cliënt.
De gebruikers kunnen afdrukken, maar er is geen enkel stuurprogramma geïnstalleerd op de cliënten en er is ook geen printerwachtrij ingesteld.
Hoe werkt dit nu toch?
Het antwoord is verre van moeilijk.
Wanneer een CUPS-server op het LAN actief is, zendt deze de naam van alle beschikbare printers uit op dat netwerk met het UDP-protocol en poort 631. Poort 631 is aangewezen als poort voor IPP-doeleinden door IANA (de “Internet Assigning Numbers Authority”). Alle CUPS-cliënten luisteren naar informatie van de CUPS-server op poort 631. Zo krijgen de cliënten ook te weten welke printers er beschikbaar zijn en op welk “pad” ze staan.
Met IPP, een slimme uitbreiding op HTTP versie 1.1, kan CUPS toegang krijgen tot alle objecten op het afdruksysteem via “Universal Resource Locators” (URL's). Afdruktaken kunnen verwijderd of herstart worden, printers opgevraagd of ingesteld, beheertaken uitgevoerd... Met IPP in combinatie met CUPS is alles toegankelijk via een bepaald URL. Veel belangrijke dingen kunt u ook regelen via de webinterface voor CUPS, dat u met bijvoorbeeld Konqueror kunt besturen.
Naast het “zien” van de printers kunnen ze vanaf de cliënten ook “beheerd” en “gebruikt” worden alsof ze lokaal geïnstalleerde printers zijn. Natuurlijk is het mogelijk om restricties in te stellen voor beperkte toegankelijkheid, zodat niet alle cliënten alle printers kunnen gebruiken.
De cliënten kunnen zelfs afdrukken zonder dat de bijbehorende filter (of stuurprogramma) lokaal is geïnstalleerd.
Hoe kan dat? Wanneer een cliënt wil weten welke printer-specifieke opties er bestaan, verzendt deze een aanvraag (genaamd CUPS-get-ppd) naar de server. De server laat de cliënt alle printer-specifieke opties weten door ze te lezen uit het PPD-bestand op de server. De gebruiker van de cliënt kan vervolgens de opties zien en selecteert degene die hij/zij nodig heeft. Deze verzendt het af te drukken bestand, meestal ongefilterde “rauwe” PostScript®, inclusief de printeropties naar de afdrukserver via IPP als transportprotocol. De verdere verwerking, vooral het filteren om het uiteindelijke formaat te verkrijgen, wordt uitgevoerd door de server. De server heeft de nodige programma's (“stuurprogramma's” of “filters”) tot zijn beschikking om dit te doen.
Op deze manier drukt een cliënt af zonder dat er lokaal een stuurprogramma geïnstalleerd hoeft te worden.
Bij iedere wijziging op de server, zoals het toevoegen of instellen van een printer, “weten” de cliënten dit direct zonder dat er verder iets ingesteld hoeft te worden.
Een andere geavanceerde functie die is ingebouwd in CUPS is de mogelijkheid om “lasten in evenwicht te houden” (“load balancing”).
Als u dezelfde printerwachtrijen instelt op twee of meer verschillende servers, verzenden de cliënten de afdruktaak naar de server die het eerst beschikbaar is/reageert. Dit zorgt ervoor dat de lasten voor servers automatisch in evenwicht worden gehouden. Wanneer u één server tijdelijk moet afzetten voor doeleinden als systeembeheer, nemen de andere servers diens taken over zonder dat de gebruikers verschil merken.
In dit hoofdstuk van het handboek van KDEPrint maakt u kennis met de meeste instellingen en keuzes bij KDEPrint. Het gaat vooral over CUPS in deze versie, omdat de auteur daar het best bekend mee is, maar ook omdat KDEPrint vanaf het begin de beste ondersteuning had voor CUPS. De komende versies van KDEPrint en dit handboek zullen meer aandacht besteden aan andere afdruksubsystemen en ze beter ondersteunen.
Voordat u een printer kunt installeren met KDEPrint, zult u een afdruksubsysteem moeten kiezen. Dit kunt u op twee plekken doen: als eerste in KControl (bij de afdrukbeheerder), en als tweede direct, vlak voor het afdrukken in het afdrukdialoogvenster.
Selecteer ->->->. U ziet onderaan een knop waarmee u kunt kiezen welk afdruksubsysteem u wenst te gebruiken. In KDE 2.2 kunt u kiezen uit de volgende mogelijkheden:
CUPS (Common UNIX® Printing System);
Afdrukken via een extern programma (algemeen);
LPR (Standaard BSD-afdruksysteem);
Algemeen UNIX®-afdruksysteem LPD (de standaardinstelling);
De RLPR-omgeving (afdrukken naar LPD-servers op afstand vanaf de commandoregel).
Het gekozen systeem moet natuurlijk wel zijn geïnstalleerd en opgestart op uw systeem voordat u een keuze maakt en het effect heeft.
Als KDEPrint voor het eerst wordt opgestart zal het proberen om het afdruksubsysteem automatisch te herkennen. Dit werkt alleen bij:
CUPS, waarbij het controleert of er een CUPS-daemon is opgestart;
LPD, waarbij het controleert of de LPD-daemon is opgestart en er een bestand genaamd printcap
bestaat.
Het systeem dat u wilt kiezen dient op uw systeem geïnstalleerd te zijn voor dat u het selecteert. De persoonlijke voorkeur van de auteur ligt op CUPS.
Zodra het afdruksubsysteem automatisch herkend is of gekozen/ingesteld is, wordt het gebruikt door alle KDE-toepassingen. Elke gebruiker kan een ander afdruksubsysteem gebruiken, als deze bestaat op de computer en er geen conflicten zijn met elkaar. De instellingen worden bewaard in het bestand kdeprintrc
. Dit bestand is voor elke gebruiker uniek en wordt standaard geïnstalleerd in $
.HOME
/.kde/share/config/kdeprintrc
Het is niet nodig om dit bestand direct te bewerken, alle beschikbare instellingen kunt u bepalen met de grafische omgeving van KDEPrint.
U kunt zelfs een ander afdruksubsysteem kiezen net voordat u begint met afdrukken in het dialoogvenster van kprinter.
Nadat u het (geïnstalleerde) afdruksubsysteem van uw voorkeur gekozen hebt kunt u via het KDEPrint-raamwerk het systeem onderzoeken, instellen en ermee werken.
Ga naar ->->->. U zult aan de rechterkant van het venster minimaal vier voorgedefinieerde printers zien. Ze worden uitgelegd in het hoofdstuk Uitbreidingen.. U ziet waarschijnlijk een werkbalk met 13 pictogrammen bovenaan het venster, en minimaal vier tabbladen bij de onderste helft van het venster, genaamd Informatie, Taken, Eigenschappen en Exemplaren.
U kunt de configuratie van de afdrukserver opstarten (als u CUPS hebt gekozen, dit staat gelijk aan de configuratie van de CUPS-daemon) door op de bijbehorende knop te klikken. Deze knop kunt u vinden door uw muis langzaam over de knoppen te verplaatsen en de knoptips te lezen. Als het goed is, is het de elfde knop van links, of de derde van rechts. Het pictogram ziet eruit als een moersleutel.
Het venster CUPS-serverconfiguratie zal verschijnen. U ziet daar een gestructueerd beeld van alle instellingen die van toepassing zijn op de CUPS-daemon. De locatie van het configuratiebestand voor die daemon is normaal gesproken /etc/cups/cupsd.conf
. Dit is een ASCII-bestand met platte tekst waarvan de syntaxis erg lijkt op het configuratiebestand van de webserver Apache. Het is verstandig om een reservekopie aan te maken, omdat het altijd mogelijk is dat er iets fout gaat bij de configuratie in de dialoogvensters van deKDEPrint-/CUPS-serverconfiguratie.
cp /etc/cups/cupsd.conf
/etc/cups/cupsd.conf.bak
Omdat deze grafische gebruikersinterface om het configuratiebestand te bewerken een nieuwe ontwikkeling is, moet het altijd mogelijk zijn om het originele bestand te herstellen. Maak dus een reservekopie.
Een aardige functie is de “helpballon”. Als u klikt op het vraagteken (Wat is dit?) in de titelbalk van het venster, verandert de muisaanwijzer van vorm. Als u dan klikt op een veld voor een cupsd-instelling, zult u de functie van dat veld te zien krijgen en welke mogelijkheden u hebt. In de meeste gevallen zult u meteen begrijpen wat er bedoeld wordt, maar als dat niet zo is kunt u de uitstekende CUPS-documentatie raadplegen. Als de CUPS-daemon opgestart is hebt u deze online op uw eigen computer via http://localhost:631/documentation.html.
Als CUPS niet opgestart is, maar wel op uw systeem geïnstalleerd, kunt u de documentatie vinden op het bestandssysteem van uw eigen computer. De exacte locatie hiervan hangt af van uw besturingssysteem, maar onder Linux® is dit meestal /usr/share/doc/cups/
of /usr/share/doc/cups/documentation.html
.
De beste, gedetailleerdste en recentste informatie kunt u altijd vinden in de originele CUPS-documentatie. CUPS wordt, net als KDE, in eenheel hoog tempo ontwikkeld. Er worden vaak nieuwe mogelijkheden toegevoegd. Deze nieuwe mogelijkheden zijn in het begin alleen beschikbaar door het wijzigen van de configuratiebestanden. De grafische omgeving van KDEPrint kan de ontwikkelingen van CUPS niet goed bijhouden.
U kunt hieronder zien waar de originele configuratiebestanden van uw CUPS-systeem staan, voor als u ze wilt bekijken:
De onderstaande paden zijn gebaseerd op de standaardinstallatie. Misschien is het hoofdpad van deze bestanden bij uw besturingssysteem anders, bijvoorbeeld /usr/local/
, maar de hiëarchie verandert daardoor niet.
/etc/cups/
De map met de configuratiebestanden
/etc/cups/cupsd.conf
Het configuratiebestand voor de CUPS-daemon
/etc/cups/printers.conf
Het configuratiebestand dat de informatie bevat over uw lokaal geïnstalleerde printers
/etc/cups/ppd/
De map met PPD-bestanden van uw geïnstalleerde printers
De volgende koppelingen werken alleen als uw CUPS-daemon gestart is. Als u toegang wilt krijgen tot de hele originele documentatie van CUPS, ga dan naar:
Een pagina waarbij alle koppelingen naar de andere documenten staan.
Directe toegang tot de Software Administrator Manual (handleiding voor softwarebeheerder) van CUPS in HTML-formaat.
Directe toegang tot de Software Administrator Manual (handleiding voor softwarebeheerder) van CUPS in PDF-formaat.
De laatste on-line-documentatie op de website van CUPS
Ook wanneer de CUPS-daemon niet opgestart is, kunt u de documentatie opvragen, en wel via de volgende koppelingen (de afbeeldingen en pictogrammen worden waarschijnlijk niet getoond). CUPS moet echter wel geïnstalleerd zijn. Sommige distributies plaatsen de bestanden ergens anders. Als dat zo is zult u ze zelf moeten opzoeken. In de meeste gevallen staat de documentatie op de volgende plaatsen:
Deze documentatie is zelfs beschikbaar als de CUPS-daemon niet is geïnstalleerd, hoewel afbeeldingen en pictogrammen wellicht niet beschikbaar zijn als u de HTML-bestanden bekijkt.
Zoals hierboven vermeld is het mogelijk dat CUPS bij uw besturingssysteem op een andere locatie geïnstalleerd is, maar de hiëarchie verandert daardoor niet.
/usr/share/doc/cups/documentation.html
Een pagina waarbij alle koppelingen naar de andere documenten staan.
/usr/share/doc/cups/sam.html
Directe toegang tot de Software Administrator Manual (handleiding voor softwarebeheerder) van CUPS in HTML-formaat.
/usr/share/doc/cups/sam.pdf
Directe toegang tot de Software Administrator Manual (handleiding voor softwarebeheerder) van CUPS in PDF-formaat.
Er bestaan enkele websites en nieuwsgroepen over CUPS (en over afdrukken onder Linux® in het algemeen) die hulp bieden voor beginners:
De website van CUPS
LinuxPrinting.org, de maker van de Linuxprinting-HOWTO en de Linux®-printerdatabase
En als laatste is er nog een website voor KDEPrint en bijbehorende documentatie, op http://kdeprint.sourceforge.net/.
In de volgende sectie komen de meeste configuratieopties van KDEPrint met CUPS aan de orde.
Deze sectie is nog niet compleet.
Boomstructuurweergave, pictogramweergave en lijstweergave
De pictogrammen van de takenbalk
Verschillende lettertypen voor verschillende printers
Elk printerpictogram heeft een andere functie
Dit is het welkomstscherm van de configuratiedialoog van de server. Als u klikt op een element in de boomstructuur aan de linkerkant, dan wordt het bijbehorende deel van de configuratie rechts geopend.
Elke instelling heeft een standaardwaarde. Met deze standaardinstellingen zal CUPS gewoon werken als een volledig functionele client. De client maakt gebruik van poort 631 van TCP/IP voor informatiebroadcast door de CUPS-servers op het LAN. Met deze informatie drukt de client het direct af na het ontvangen, zonder ook maar een stuurprogramma te installeren of een printer in te stellen op de clients.
U dient de standaardwaarden te wijzigen om de CUPS-server, die zijn systeemdienst over het LAN zendt, in te stellen.
Het dialoogvenster om de CUPS-server in te stellen: welkomstscherm.
Het dialoogvenster om de CUPS server te configureren: welkomstscherm
Als u de standaardinstelling van een element wilt gebruiken, schakelt u het keuzevakje aan de rechterkant in. Als u een element op een andere waardewilt instellen, schakelt u het keuzevakje uit en verandert u links de instelling die u wilt wijzigen.
De volledige serverconfiguratie bevat:
Serverconfiguratie: versleutelings- en certificaatondersteuning
Netwerkconfiguratie: algemeen
In de volgende secties van deze handleiding worden elk van deze configuratieitems beschreven.
In dit scherm kunt u de algemene zaken over de server instellen. Het bevat:
Servernaam
E-mail beheerder
Gebruiker server
Groep server
Gebruikersnaam op afstand
Met het getabte venster om de algemene serverinstellingen van CUPS te bepalen kunt u de standaardwaarden wijzigen. De “tekstballonnen” geven informatie over een bepaalde instelling door achtereenvolgens op het vraagteken en het veld te klikken.
Als u niet zeker weet wat u moet invullen, zoek dat dan op in de originele CUPS-documentatie. Als uw CUPS-daemon opgestart is, kunt u die documentatie lezen in Konqueror door naar de volgende URL te gaan: http://localhost:631/documentation.html.
Maak allereerst kennis met de Software Administrator Manual. Als dat niet werkt, bijvoorbeeld omdat de CUPS-daemon niet opgestart is, kunt u het waarschijnlijk alsnog vinden in /usr/share/doc/cups/
of /usr/share/doc/cups/documentation.html
.
De hostnaam van uw server, zoals bekend wordt gemaakt aan de wereld. Standaard zal CUPS gebruik maken van de hostnaam van uw systeem. Bekijk het bestand client.conf
om de standaardserver in te stellen die gebruikt wordt door de clients.
Voorbeeld: myhost.domain.com
Dit is de hostnaam die de clients te zien krijgen. Wanneer u onduidelijke problemen krijgt met betrekking tot toegang naar de server, vul hier dan het IP-adres in om het op te lossen. Zo kunt u voorkomen dat de omzetting van ip-naam naar ip-nummer het probleem veroorzaakt en gemakkelijker het echte probleem vinden.
Dit is het e-mailadres waar alle problemen naartoe worden gezonden. Standaard gebruikt CUPS “root@hostname”.
Voorbeeld: root@myhost.com
In tegenstelling tot wat er in de helpballon wordt beweerd, is het ook toegestaan om een e-mail vol lof en enthousiasme over CUPS en KDEPrint naar de serverbeheerder te sturen.
De gebruiker waarop de server draait. Normaal gesproken moet dit lp
zijn, u kunt echter een andere gebruiker instellen als dat nodig is.
De eerste start van de server moet door root gedaan zijn, zodat de standaard IPP-poort 631 ondersteund kan worden. De server wijzigt van gebruiker zodra er een externe toepassing wordt opgestart.
Voorbeeld: lp
Dit is het UNIX®-gebruikersaccount waarop CGI-programma's en filters worden gestart. CGI-programma's zorgen voor de prettige webbeheerinterface, toegankelijk via http://localhost:631/.
Het is niet nodig om Gebruiker in te stellen als root
, dus doe dat ook nooit; u kunt er alleen maar problemen mee krijgen. Als iemand veiligheidslekken ontdekt in één van de gebruikte bestandfilters, printerstuurprogramma's of CGI-programma's, kan hij of zij op afstand zo maar commando's uitvoeren als root. Gebruik altijd een account met gewone rechten als Gebruiker.
De groep waarop de server uitgevoerd wordt. Normaal moet dit sys
zijn, maar u kunt een andere groep instellen als dat nodig is.
Voorbeeld: sys
De gebruikersnaam voor niet-bevoegde toegang vanaf systemen op afstand. Standaard is dit remroot
.
Deze naam verschijnt in logbestanden en in wachtrijen over de eigenaar van de taak, enzovoort, voor alle gegevensbronnen en locaties van de CUPS-server die ingesteld zijn voor toegang zonder authenticatie. Geauthentiseerde ingangen staan altijd onder hun geauthentiseerde naam.
In dit scherm kunt u de loginstellingen voor de server bepalen. Het bevat:
Instelling Toegangslogbestand
Instelling Foutmeldingenlogbestand
Instelling Paginalogbestand
Instelling Logniveau
Instelling Maximum loggrootte
Dit is een erg belangrijk scherm. Als u problemen tegenkomt, stel dan hier het logniveau in op “debug”. Start daarna de CUPS-daemon opnieuw op en bekijk het logbestand voor foutmeldingen (zoals hierboven opgegeven). Zoek daar naar ingangen die u meer informatie kunnen geven over het probleem.
Hier worden de toegangspogingen tot de server gelogd. Als de bestandsnaam niet begint met een /
, dan komt het bestand relatief aan de serverroot te staan.
U kunt ook de speciale naam syslog
gebruiken om de uitvoer naar het syslog-bestand of -daemon te sturen.
Vul een pad in, bijvoorbeeld
./var/log/cups/acces_log
Het logbestand wordt opgeslagen in het zogenoemde “Common Log Format” (algemene logformaat), zodat u er met programma's als Webalyzer, of welk ander rapporteerhulpmiddel voor webtoegang dan ook, rapporten van kunt laten maken over de activiteiten van de CUPS-server.
Als u de servernaam wilt gebruiken in de bestandsnaam voor het logbestand, kunt u %s gebruiken. Dat teken wordt automatisch gewijzigd in de servernaam. Voorbeeld:
./var/log/cups/access_log-%s
kurt@transmeta:~ >
tail
/var/log/cups/access_log
127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "POST /printers/ HTTP/1.1" 200 109 127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "POST /admin/ HTTP/1.1" 401 0 127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 210 127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "GET /ppd/DANKA_P450.ppd HTTP/1.1" 200 51021 127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "POST /jobs/ HTTP/1.1" 200 246 10.160.16.45 - - [04/Aug/2001:20:11:39 +0100] "GET /printers/DANKA_P450 HTTP/1.0" 200 0 127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 80 127.0.0.1 - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 139 10.160.16.45 - - [04/Aug/2001:20:11:40 +0100] "GET /cups.css HTTP/1.0" 200 198 127.0.0.1 - - [04/Aug/2001:20:11:40 +0100] "POST / HTTP/1.1" 200 139 10.160.16.45 - - [04/Aug/2001:20:11:39 +0100] "GET /printers/DANKA_P450 HTTP/1.0" 200 7319 10.160.16.45 - - [04/Aug/2001:20:11:40 +0100] "GET /images/title-logo.gif HTTP/1.0" 200 5729
Voor elke keer dat iemand toegang krijgt is een aparte regel gereserveerd, waarbij de volgende informatie wordt getoond: het IP-adres van de client van de toegangspoging, datum en tijd van de toegangspoging, methode van toegang (POST of GET), de opgevraagde bron, de versie van HTTP die de client gebruikt, de statuscode en het aantal overgedragen bytes. Statuscode 200 betekent succesvol, OK, de statuscode 401 (te zien in het voorbeeld hierboven) betekent een niet-bevoegde toegangspoging welke verworpen werd. Bekijk de CUPS Software Administrators Manual (beheerdershandleiding van de CUPS-software) voor een volledige en gedetailleerde uitleg van het logbestandformaat.
Als de bestandsnaam niet begint met een /
, dan komt het bestand relatief aan de serverhoofdmap te staan. De standaardinstelling is /var/log/cups/error_log
.
U kunt ook de speciale naam syslog
gebruiken om de uitvoer naar het syslog-bestand of -daemon te sturen.
Vul het pad in, bijvoorbeeld
./var/log/cups/error_log
In het fragment van een foutenlog hieronder kunt u de tekst die gelogd is tijdens het afdrukken van de testpagina zien, met de standaardinstelling van Logniveau: “info”. Lees de bijbehorende tekst hierna voor uitleg over het Logniveau.
kurt@transmeta:~ >
tail
/var/log/cups/error_log
I [04/Aug/2001:23:15:10 +0100] Job 213 queued on 'DANKA_P450' by 'root' I [04/Aug/2001:23:15:10 +0100] Started filter /usr/lib/cups/filter/pstops (PID 18891) for job 213. I [04/Aug/2001:23:15:10 +0100] Started backend /usr/lib/cups/backend/lpd (PID 18892) for job 213.
Als de bestandsnaam niet begint met een /
, dan komt het bestand relatief aan de serverroot te staan. De standaardinstelling is /var/log/cups/page_log
.
U kunt ook de speciale naam syslog
gebruiken om de uitvoer naar het syslog-bestand of -daemon te sturen.
Vul het pad in, bijvoorbeeld
./var/log/cups/page_log
Het paginalogbestand bevat een regel per elke pagina van elke afgedrukte afdruktaak.
Hieronder kunt u enkele ingangen zien:
kurt@transmeta:~ >
tail
/var/log/cups/page_log
GIMP_print_stp_HP kdetest 201 [03/Aug/2001:03:18:03 +0100] 4 1 GIMP_print_stp_HP kdetest 201 [03/Aug/2001:03:18:03 +0100] 5 1 GIMP_print_stp_HP kdetest 202 [03/Aug/2001:11:46:49 +0100] 1 1 GIMP_print_stp_HP kdetest 203 [03/Aug/2001:11:46:54 +0100] 1 1 DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 1 33 DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 2 33 DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 3 33 DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 4 33 DANKA_infotec_P450 root 205 [04/Aug/2001:19:12:34 +0100] 1 14 DANKA_infotec_P450 root 206 [04/Aug/2001:19:15:20 +0100] 1 1
In dit fragment van het bestand vindt u informatie over de naam van de printers (GIMP_print_stp_HP
and DANKA_infotec_P450
) die gebruikt zijn door deze server, de gebruikersnamen (kdetest
, kurt
en root
), de nummers van de taken (“201” tot “205”), tijd van het afdrukken, aantal pagina's voor de taak en het aantal kopieën voor de pagina's. Voorbeeld: taaknummer 204 bevatte vier pagina's waarvan er 33 kopieën werden afgedrukt, taaknummer 205 bevatte veertien kopieën van slechts één pagina.
Voor de berekening van het aantal pagina's van een afdruktaak is CUPS afhankelijk van het sturen van het PostScript®-bestand door de “pstops”-filter. Zie de Kivio-stroomdiagram over de filterarchitectuur van CUPS om een idee te krijgen over hoe dit filter past in het volledige afdrukproces. Verder is pstops voor het tellen van pagina's afhankelijk van een DSC-conformatie (DSC staat voor Document Structuring Conventions, een standaard ingesteld door Adobe) die door de client wordt verzonden. In de meeste gevallen werkt dit.
Deze paginatelling werkt echter niet voor “rauwe” printerwachtrijen (omdat deze in de regel niet filteren over de CUPS-host gebruiken en pstops niet aanroepen). Elke taak die door een “rauwe” wachtrij gaat wordt meegeteld als zijnde een taak van één pagina (met mogelijk meerdere kopieën). Dit is vooral het geval voor alle taken verzonden naar de CUPS-server vanuit Microsoft® Windows®-clients, via Samba, omdat deze taken al in het juiste formaat voor de printer aankomen, omdat deze clients het originele printerstuurprogramma gebruiken.
Ik ben nog steeds op zoek naar iemand die bereid is een hulpmiddel te ontwikkelen waarmee paginalogbestanden van CUPS geanalyseerd kunnen worden. Het programma moet een rapport kunnen genereren met een grafische uitvoer, zoals de toegangslograpporten van Webalizer. Op die manier kunnen mooie statistieken vervaardigd worden om inzicht te verkrijgen over het gebruik van de printers, of er een piek is op een bepaalde tijd of dag van de week, gebruikers, enzovoort. Heeft iemand interesse?
Met deze instelling kunt u bepalen in welke mate er berichten gelogd moeten worden naar het foutmeldingenlogbestand. U hebt de volgende mogelijkheden:
Alles loggen.
Bijna alles loggen.
Alle printopdrachten en statuswijzigingen loggen.
Fouten en waarschuwingen loggen.
Alleen fouten loggen.
Niets loggen.
Als u een probleem op moet lossen (of als u wilt weten hoe CUPS achter de schermen werkt), stel het logniveau dan in op debug of debug2. Het foutmeldingenlogbestand zal dan veel meer ingangen bevatten: niet alleen foutmeldingen, maar ook informatieve meldingen.
U kunt hiermee “live” bekijken wat CUPS aan het doen is terwijl u een afdruktaak laat uitvoeren. Typ hiervoor in een Konsole-venster:
kurt@transmeta:~ >
tail
-f
-n
100
/var/log/cups/error_log
Hiermee krijgt u de laatste 100 regels (-n
100
) van het bestand te zien op het scherm waarbij er steeds “live” wordt getoond (-f
) wat er gebeurt. Hieronder ziet u wat er gebeurde tijdens het afdrukken van een testpagina (er zijn enkele stukjes uitgeknipt wegens ruimtegebrek... probeer het zelf uit als u dit niet genoeg vindt):
I [04/Aug/2001:23:15:12 +0100] Job 214 queued on 'DANKA_P450' by 'root'
D [04/Aug/2001:23:15:12 +0100] StartJob(214, 08426fe0)
D [04/Aug/2001:23:15:12 +0100] StartJob() id = 214, file = 0/1
D [04/Aug/2001:23:15:12 +0100] job-sheets=none,none
D [04/Aug/2001:23:15:12 +0100] banner_page = 0
D [04/Aug/2001:23:15:12 +0100] StartJob: argv = "DANKA_P450","214","root","KDE Print Test",
[....]
D [04/Aug/2001:23:15:12 +0100] StartJob: envp = "PATH=/usr/lib/cups/filter:/bin:/usr/bin", [....]
D [04/Aug/2001:23:15:12 +0100] StartJob: statusfds = 5, 6
D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[1] = 7, -1
D [04/Aug/2001:23:15:12 +0100] StartJob: filter = "/usr/lib/cups/filter/pstops"
D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[0] = 8, 9
D [04/Aug/2001:23:15:12 +0100] start_process("/usr/lib/cups/filter/pstops", [....]
I [04/Aug/2001:23:15:12 +0100] Started filter /usr/lib/cups/filter/pstops (PID 18991) for job 214.
D [04/Aug/2001:23:15:12 +0100] StartJob: backend = "/usr/lib/cups/backend/lpd"
D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[1] = -1, 7
D [04/Aug/2001:23:15:12 +0100] start_process("/usr/lib/cups/backend/lpd", [....]
I [04/Aug/2001:23:15:12 +0100] Started backend /usr/lib/cups/backend/lpd (PID 18992) for job 214.
D [04/Aug/2001:23:15:12 +0100] Page = 595x842; 15,16 to 580,833 [....]
De regels gemarkeerd met een “D” zijn ingangen van het debugniveau, de regels met een “I” zijn van het “info”-niveau.
Hiermee kunt u de maximale grootte van elk logbestand bepalen voordat ze geroteerd worden. De standaardwaarde is 1048576 (1 MB). Als u dit op 0 instelt, wordt de logrotatie uitgeschakeld.
Vul een grootte in bytes in, bijvoorbeeld 1048576
.
Dit is het dialoogvenster om de CUPS-server in te stellen. U kunt hier verschillende mappen kiezen. Normaal gesproken hoeft u niets te wijzigen in dit onderdeel. Wanneer u dingen wilt doen met speciale lettertypen op uw systeem (TrueType, PostScript® of andere soorten), dan kunt u hier de instellingen bepalen voor het gebruik van zulke lettertypen bij het afdrukken. De instellingen voor de servermappen zijn als volgt:
Uitvoerbare bestanden: waar de uitvoerbare bestanden voor de server staan
Configuratie: waar de configuratiebestanden voor de server staan
Gegevens: waar de gegevensbestanden voor de server staan
Tijdelijke bestanden: waar de tijdelijke afdrukbestanden voor de server komen te staan
Tijdelijke opdrachten: waar de server staat
Lettertypemap: waar de lettertypen van de server staan
De hoofdmap voor de scheduler-programmabestanden. Standaard is dit /usr/lib/cups
(of /usr/lib32/cups
bij IRIX 6.5).
De hoofdmap voor de scheduler. Standaard is dit /etc/cups
.
Op het SuSE-systeem van de auteur is dit /usr/share/doc/cups
. Deze map bevat alle HTML- of PDF-documentatie voor CUPS, die beschikbaar is via de webinterface op http://localhost:631/documentation.html.
De hoofdmap voor de gegevensbestanden van CUPS. Standaard is dit /usr/share/cups
.
Deze map bevat zaken als schutbladen, tekensets, gegevens, stuurprogramma's, lettertypen en sjablonen voor pstoraster.
De map waarin de tijdelijke bestanden worden gezet. De map dient beschrijfbaar te zijn voor de gebruiker die in het vorige onderdeel is ingesteld. De standaardinstelling is /var/spool/cups/tmp
, of de waarde van de omgevingsvariabele TMPDIR
.
De map waarin de opdrachtbestanden worden opgeslagen. Standaard is dit /var/spool/cups
.
De plaats waar de de CUPS-server ingesteld kan worden om uw speciale lettertypen (TrueType of PostScript®) te gebruiken. CUPS zoekt op deze plaats naar lettertypen die gebruikt moeten worden in de afdrukbestanden. Dit heeft momenteel alleen effect op de filter pstoraster. De standaard is /usr/share/cups/fonts
.
U kunt meer dan één map kiezen door de ingangen te scheiden met dubbele punten, zoals:
/pad/naar/eerst/fontmap/:/pad/naar/tweede/fontmap/:/pad/naar/laatste/fontmap/
Om de ingestelde lettertypemap juist te laten werken, moet een toepassing die wil printen het volgende doen:
Juist verwijzen naar de gewenste lettertypen in de koptekst van het aangemaakte PostScript®-bestand, of
Het lettertype bijvoegen bij het PostScript®-bestand.
Door te verwijzen met de naam van het lettertype wordt het overgelaten aan de RIP en het afdrukstuurprogramma om het te herkennen en het werkelijk te gebruiken. De RIP kan het gewenste lettertype slechts gebruiken als het beschikbaar is op het systeem.
In het geval dat u een PostScript®-printer gebruikt, dient dit een lettertype te zijn dat de printer ondersteunt. Als de printer het lettertype niet heeft, zal deze proberen een lettertype te vinden dat er het best op lijkt.
Als er geen sprake is van een PostScript® wordt dit overgelaten aan CUPS en zijn RIP'pende filtersysteem. CUPS gebruikt het hier ingestelde lettertypepad om het juiste lettertype te nemen wanneer het PostScript®-bestand geRIP't wordt in de pstoraster-filter.
In het geval van een PostScript®-uitvoerapparaat “spoolt” CUPS het bestand slechts (wat betekent dat het door de pstops-filter gevoerd wordt voor accounting- of n-up-doeleinden), maar “bewerkt” het niet. Daarom is het bij een PostScript®-printer de verantwoordelijkheid van de printer om het opgevraagde lettertype te gebruiken. Dit is alleen mogelijk wanneer het lettertype is ingeladen in de printer of als het is bijgevoegd in het PostScript®-bestand.
Het dialoogvenster om de HTTP-instellingen voor de CUPS-server te bepalen kunt u hier zien.
De HTTP-configuratie voor de CUPS-server bestaat uit de volgende instellingen:
De Documentenmap
De Standaardtaal
De Standaardtekenset
De hoofdmap voor de verschafte HTTP-documenten. Standaard is dit de ingecompileerde map /usr/share/cups/doc
.
De standaardtaal, als deze niet ingesteld is door de browser. Als deze instelling niet is ingesteld wordt de huidige lokalisatieinstelling gebruikt.
Gebruik de tweeletterige taalcodes, bijvoorbeeld en
of nl
.
De tekenset die standaard gebruikt wordt. Als dit niet is ingesteld, wordt de standaardinstelling UTF-8 gebruikt. In HTML-documenten kan dit ook overschreven worden door een andere tekenset.
Dit is het dialoogvenster om de veiligheidsinstellingen voor de CUPS-server te bepalen. Dit zijn de instellingen:
Servercertificaat: het bestand waarin het certificaat van de server staat
Serversleutel: het bestand waarin de sleutel van de server staat
Het bestand waaruit het certificaat van de server gelezen wordt. De standaardwaarde is /etc/cups/ssl/server.crt
.
Het bestand waaruit de sleutel van de server gelezen wordt. De standaard is /etc/cups/ssl/server.key
.
U kunt het dialoogvenster om de diverse instellingen van de CUPS-server te bepalen hier zien. In dit scherm kunt u de volgende zaken instellen:
Takengeschiedenis bewaren: bepaalt of de takengeschiedenis wordt bewaard om het later te bekijken
Taakbestanden bewaren: bepaalt of de volledige ge-RIP'te taakbestanden bewaard moeten worden om ze later opnieuw af te drukken
Printcap-bestand: de naam en het pad van een printcap-bestand
RIP-cache: de grootte van de RIP-cache in het geheugen
Filterlimiet: bepaling van een filterlimiet
Of de taakgeschiedenis wel of niet bewaard moet worden nadat een taak isvoltooid, geannuleerd of gestopt. Standaard is deze keuze ingeschakeld.
Of de taakfilters wel of niet bewaard moeten worden nadat een taak is voltooid, geannuleerd of gestopt. Standaard is deze keuze uitgeschakeld.
De naam van het printcap-bestand. Standaard is hier niets ingevuld. Laat dit veld leeg om het aanmaken van printcap-bestanden uit te schakelen.
De printcap-instelling is alleen noodzakelijk voor compatibiliteit met oudere toepassingen die zo'n bestand nodig hebben.
De hoeveelheid geheugen die elke RIP gebruikt om bitmaps te cachen. Als waarde is toegestaan elk werkelijk getal, gevolgd door “k” voor kilobytes, “m” voor megabytes, “g” voor gigabytes of “t” voor “tiles” (tegels), waarbij één tegel 256x256 pixels beslaat. De standaardwaarde is 8m.
Bepaalt het maximale aantal filters dat op hetzelfde moment uitgevoerd mag worden. De waarde 0 betekent geen limiet. Een gemiddelde taak heeft een filterlimiet nodig van minimaal 200. Een limiet minder dan het minimum dat benodigd wordt door een taak zorgt ervoor dat er slechts één taak tegelijk kan worden afgedrukt. De standaardwaarde is 0 (geen limiet).
U kunt het dialoggvenster om de netwerkinstellingen voor de CUPS-server te bepalen hier zien. Het bevat:
Hostnaam of IP-adres opzoeken
Poort
Maximale verzoekgrootte
Wachttijd
Of het opzoeken van IP-adressen moet gebruikt om een volledig gekwalificeerde hostnaam te verkrijgen. Standaard is deze functie uitgeschakeld vanwege prestatieredenen.
Vul hier poorten en adressen in naar waar er door de server geluisterd moet worden. We gebruiken hier de standaardpoort 631 die wordt gereserveerd voor het Internet Printing Protocol (Internetafdrukprotocol).
U kunt hier meerdere ingangen toevoegen, om ervoor te zorgen dat er geluisterd wordt naar meer dan één poort of adres of om de toegang te beperken.
Helaas wordenTLS of HTTP-opwaarderingen voor versleuteling niet ondersteund door de meeste webbrowsers. Wanneer u ondersteuning voor webgebaseerde versleuteling wenst in te schakelen, dient u waarschijnlijk te luisteren op poort 443, de HTTPS-poort.
Gebruik de knoppen en om ingangen in de lijst toe te voegen en te wissen.
U kunt hier poorten apart toevoegen, bijvoorbeeld 631
, of hostnamen samen met poorten, zoals myhost:80
of 1.2.3.4:631
.
Hiermee kunt u de maximumgrootte instellen van HTTP-verzoeken en af te drukken bestanden. De standaardinstelling is 0, waarmee deze functie uitgeschakeld wordt.
De wachttijd (in seconden) voordat de opdracht afloopt. De standaardwaarde is 300 seconden.
U kunt het dialoogvenster waarmee u de netwerkclientinstellingen voor CUPS kunt instellen hier zien. Het bevat de volgende instellingen:
Opdrachten voor "Actief blijven" accepteren
KeepAliveTimeout:
MaxClients:
Of de verbinding wel of niet actief blijft. Standaard is deze optie ingeschakeld.
De wachttijd (in seconden) voordat actief gebleven verbindingen automatisch gesloten worden. De standaardwaarde is 60 seconden.
Bepaalt het maximaal aantal clients dat gelijktijdig wordt afgehandeld. De standaardwaarde is 100.
U kunt het dialoogvenster om de algemene bladerinstellingen voor CUPS te bepalen hier zien. Het bevat de volgende instellingen:
Bladeren inschakelen
Korte namen gebruiken indien mogelijk
Impliciete klassen gebruiken
Bepaalt of printerinformatie naar andere CUPS-servers doorgegeven moet worden. Standaard ingeschakeld.
Bepaalt of er wel of niet “korte” namen voor printers op afstand moeten worden gebruikt indien mogelijk (bijvoorbeeld printer
in plaats van printer@host
). Standaard ingeschakeld.
Of impliciete klassen wel of niet ingeschakeld moeten worden.
U kunt printerklassen expliciet specificeren in het bestand classes.conf
, impliciet gebaseerd op de printers die beschikbaar zijn op het LAN, of beide.
Als Impliciete klassen ingeschakeld is, zullen printers op het LAN met dezelfde naam (zoals Acme-LaserPrint-1000
) worden geplaatst in een klasse met dezelfde naam. Hiermee kunt u meerdere ongebruikte wachtrijen instellen op een LAN zonder veel beheerdersproblemen te ondervinden. Als een gebruiker een taak verzendt naar Acme-LaserPrint-1000
, dan zal de taak gaan naar de eerst beschikbare wachtrij.
Deze instelling is standaard ingeschakeld.
U kunt het dialoogvenster om de bladerverbinding van de CUPS-server in te stellen hier zien. De instellingen voor de bladerverbinding bevatten:
Broadcast-adressen: De (UDP-) broadcast-adressen waarnaar printerinformatie wordt overgebracht
Broadcast-poort: het poortnummer voor broadcasten
Ondervragingsadressen: De adressen die worden ondervraagd om informatie over printers op servers die geen broadcast kunnen gebruiken (of waarvan de broadcast wellicht niet uw LAN kan gebruiken door toedoen van routers daartussen).
Het volgende dialoogvenster verschijnt nadat u op de knop hebt geklikt. U kunt er een nieuwe waarde toevoegen voor uitgaande broadcast-bladeradressen. Het dialoogvenster is ongeveer gelijk aan die voor het toevoegen van andere CUPS-serveradressen om te worden ondervraagd voor printerinformatie.
Deze optie bepaalt een te gebruiken broadcastadres. Standaard wordt de bladerinformatie doorgevoerd naar alle actieve interfaces.
HP-UX® 10.20 en eerder zijn niet in staat om broadcast juist af te handelen, behalve als u een netmask van Class A, B, C of D hebt (d.w.z.: er is geen ondersteuning voor CIDR).
De gebruikte poort voor UDP-broadcasts. Standaard is dit de IPP-poort; wanneer u deze waarde wijzigt zult u dit op alle servers moeten doen. Er wordt slechts één BrowsePort herkend.
De genoemde server(s) ondervragen voor printers.
U kunt hier het dialoogvenster zien om de toegestane en/of geweigerde bladerpakketten vanuit andere servers voor de CUPS-server in te stellen hier zien.
Bladeren toestaan:
Bladeren weigeren:
Bladervolgorde:
Het dialoogvenster om een nieuwe waarde toe te voegen voor de adressen van andere CUPS-servers waarvan bladerpakketten worden geaccepteert kunt u hier zien. U kunt het openen door op de knop te klikken naast het veld genaamd Bladeren toestaan:. Het dialoogvenster is gelijk aan dat voor het toevoegen van “geweigerde” broadcast-verzendingadressen.
Het dialoogvenster om een nieuwe waarde toe te voegen voor de adressen van andere CUPS-servers waarvan bladerpakketten worden geaccepteert kunt u hier zien.
Met Bladeren toestaan stelt u een adresmasker in waarvan inkomende bladerpakketten worden geaccepteerd. Standaard worden pakketten van alle adressen toegestaan.
Met Bladeren weigeren stelt u een adresmasker in waarvan inkomende bladerpakketten worden geweigerd. Standaard worden de pakketten van geen enkel adres geweigerd.
Zowel Bladeren toestaan en Bladeren weigeren accepteren de volgende notaties van de adressen:
All
None
*.domain.com
.domain.com
host.domain.com
nnn.*
nnn.nnn.*
nnn.nnn.nnn.*
nnn.nnn.nnn.nnn
nnn.nnn.nnn.nnn/mmm
nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
De beperkingen voor host- en domeinnamen werken alleen als hostnaam opzoeken is ingeschakeld.
Stelt de volgorde van de vergelijkingen van toestaan/weigeren in.
U kunt het dialoogvenster om de bladerwachttijdinstellingen voor de CUPS-server te bepalen hier zien. De bladerwachttijdinstellingen bevatten het volgende:
Bladerinterval
Bladerwachttijd
De tijd tussen bladervernieuwingen in seconden. De standaardwaarde is 30 seconden.
Merk op dat de bladerinformatie ook wordt verzonden wanneer de status van een printer wordt gewijzigd, dus dit heeft ook betrekking op de maximale tijd tussen vernieuwingen.
Wanneer u dit instelt op 0 worden uitgaande broadcasten uitgeschakeld zodat uw lokale printers niet publiekelijk getoond worden. U kunt nog steeds de printers op andere hosts zien.
De wachttijd (in seconden) voor netwerkprinters. Als er geen vernieuwing ontvangen wordt binnen die tijd, zal de printer verwijderd worden van de printerlijst.
Deze waarde mag natuurlijk beslist niet lager liggen dan het bladerinterval. De standaardwaarde is 300 seconden.
U kunt het dialoogvenster om de CUPS-server in te stellen als bladeromleiding (relay) hier zien. Instellingen voor bladeromleiding zijn de volgende:
Omleiding bladerpakketten
U kunt het dialoogvenster om een nieuwe waarde toe te voegen voor een adrespaar om bladeromleiding de definiëren tussen een CUPS-server en een netwerk hier zien.
Browserpakketten van één adres of netwerk naar een andere omleiden.
U kunt het dialoogvenster om de beveiligingsinstellingen van de CUPS-server voor elk van de gedefinieerde serverlocaties hier zien. Het bestaat uit de volgende instellingen, welke apart ingesteld kunnen worden voor elke geldige gegevensbron (of locatie) van de CUPS-server:
Systeemgroep:
Toegangspermissies:
Autorisatietype:
Autorisatieklasse:
Groepnaam autorisatie:
Versleuteling:
Toestaan:
Weigeren:
Volgorde:
Juiste gegevensbronnen (of locaties) van de CUPS-server zijn:
Hoofdlocatie server: /
Beheerlocatie server: /admin
Alle printers op de server: /printers
Elke printer apart op de server, bijvoorbeeld: /printers/infotec_P320
Alle printerklassen op de server: /classes
:
Elke printerklasse apart op de server, bijvoorbeeld: /classes/all_infotecs_P320_or_P450
Voor alle locaties die niet apart worden gedefinieerd is de instelling van de locatie “hierboven” geldig.
Om een voorbeeld te geven: u hebt een printer genaamd infotec_P450
zonder beveiligingsopties ingesteld. De beveiliging van de locatie /printers
neemt dan de verantwoordelijkheid op van deze printer als een sublocatie van /printers
. Als er ook geen beveiliging is ingesteld voor /printers
, dan wordt de verantwoordelijkheid voor beveiliging overgenomen door /
(de algemene beveilging). U hebt dit of voor uzelf ingesteld of de ingecompileerde standaardwaarde neemt dit over.
De groepnaam voor System
of toegang tot printerbeheer. De standaardwaarde kan bij elk besturingssysteem anders zijn, maar is altijd sys
, system
of root
(de controle vindt in die volgorde plaats).
Toegangspermissies voor elke map apart verzorgd door de scheduler. De paden zijn relatief aan de hoofddocumentmap.
De te gebruiken autorisatie:
Geen authenticatie uitvoeren.
Authenticatie uitvoeren via de HTTP Basic-methode.
Authenticatie uitvoeren via de HTTP Digest-methode.
De lokale certificaatauthenticatie kan bij verbindingen naar de lokale interface worden geplaatst door de client voor Basic of Digest.
De autorisatieklasse. Op dit moment worden alleen “Anoniem”, “Gebruiker”, “Systeem” (geldige gebruiker horend bij de gespecificeerde groep) ondersteund.
De groepnaam voor “Groep”autorisatie
Bepaalt of er wel of niet versleuteling wordt gebruikt. Dit hangt af van of OpenSSL gekoppeld is in de CUPS-bibliotheek en -scheduler.
De mogelijke waarden zijn:
Altijd versleuteling gebruiken (SSL).
Nooit versleuteling gebruiken.
TLS-versleutelingsopwaardering gebruiken.
Versleuteling gebruiken als de server daarom vraagt.
Toegang van de gespecificeerde hostnaam, domein, IP-adres of netwerk toestaan. Mogelijke waarden zijn:
All
None
*.domain.com
.domain.com
host.domain.com
nnn.*
nnn.nnn.*
nnn.nnn.nnn.*
nnn.nnn.nnn.nnn
nnn.nnn.nnn.nnn/mmm
nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
De host- en domeinadressen vereisen dat u hostnaam opzoeken hebt ingeschakeld, zoals al eerder is opgemerkt.
Toegang weigeren van de bepaalde hostnaam, domein, IP-adres of netwerk. U hebt keuze uit de volgende mogelijkheden:
All
None
*.domain.com
.domain.com
host.domain.com
nnn.*
nnn.nnn.*
nnn.nnn.nnn.*
nnn.nnn.nnn.nnn
nnn.nnn.nnn.nnn/mmm
nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
De host- en domeinadressen vereisen dat u hostnaam opzoeken hebt ingeschakeld, zoals al eerder is opgemerkt.
De volgorde van het toestaan en weigeren
Hier wordt het dialoogvenster om de beveiligingsinstellingen voor de CUPS-server in te stellen besproken. We gebruiken het voorbeeld om beveiligingsdefinities toe te voegen die anders zijn dan de standaarddefinities voor de gegevensbron genaamd all printers
. Dit is voor de webserver van CUPS de locatie waarmee u toegang hebt via http://localhost:631/printers/ of (op afstand) via http://cups.server.name:631/printers/.
In de eerste schermafdruk ziet u een algemene locatie voor deze instelling. Kies om een nieuwe gegevensbron toe te voegen of klik op om de beveiligingsinstellingen te bepalen van de geselecteerde gegevensbron.
Dit is het dialoogvenster om een nieuwe gegevensbron toe te voegen. Het ziet er ongeveer hetzelfde uit als u een reeds bestaande gegevensbron wilt wijzigen. Dit zijn de algemene opties:
Dit is het tweede deel van het dialoogvenster en wordt gebruikt om een nieuwe gegevensbron toe te voegen. Het ziet er ongeveer hetzelfde uit wanneer u een reeds bestaande gegevensbron wilt wijzigen. Hier kunt u de eigenlijke toegangsmaskers definiëren voor de gegevensbron in kwestie.
Als u klikt op het meest linkse pictogram van de werkbalk in het bovenste deel van het venster wordt de “Printer-toevoegen-assistent” gestart.
Deze assistent helpt u met een aantal schermen om een nieuwe printer te installeren. Op dit moment werkt de assistent alleen voor CUPS en de PLPR-omgevingsmodule. Het aantal stappen dat nodig is hangt af van het afdruksubsysteem dat u hebt ingeschakeld en voor u beschikbaar is.
Het welkomsscherm vertelt u dat u ieder moment terug kunt gaan om een instelling te wijzigen.
Kies het “backend”-protocol dat CUPS moet gebruiken voor uw nieuwe printer. U hebt de volgende mogelijkheden:
Lokale printer (parallel, serieel, USB)
LPD-wachtrij op afstand
SMB-gedeelde printer (Windows®)
Netwerkprinter (TCP, HP®, JetDirect, AppSocket)
Netwerkprinter met IPP (IPP/HTTP)
Bestandsprinter
Seriële fax/modemprinter
Printerklassen
De opties die uitgeschakeld zijn zijn niet beschikbaar. Er kan bijvoorbeeld geen software voor fax-backend aanwezig zijn, of er is geen modem geïnstalleerd.
De inhoud van het volgende scherm is afhankelijk van uw zojuist gemaakte keuze. Als u de details kent, vul deze dan in om uw netwerkinstellingen direct te configureren.
In andere gevallen zal de assistent het netwerk scannen en u zo helpen om te beslissen welke instelling juist kan zijn.
Wanneer u één van de netwerkverbindingen gebruikt (LPD op afstand, SMP, CUPS op afstand of netwerkprinter met IPP), heeft u de mogelijkheid om het netwerk te scannen. Wees voorzichtig met deze functie, in sommige omgevingen wordt het scannen van het netwerk als vijandig en schadelijk beschouwd!
Als u de netwerkverbinding SMB gebruikt, zal KDEPrint de Samba-hulpmiddelen nmblookup en smbclient gebruiken om de informatie op te vragen die gepresenteerd worden in een boomstructuur. Deze hulpmiddelen moeten hiervoor wel geïnstalleerd zijn.
Als u IPP (poort 631) of TCP Network/AppSocket (poort 9100) gebruikt, dan zal KDEPrint proberen om de poort te openen en vervolgens - als dat gelukt is - de aanvraag ipp-get-printer-attribute naar de printer sturen. Voor nieuwere HP®-printers zal normaliter het laatste werken omdat die zowel Appsocket als IPP ondersteunen.
Enkele printers en/of fabrikanten gebruiken andere poortnummers voor direct afdrukken met TCP/IP. Als dat zo is, moet u zelf opzoeken welke u dient te gebruiken. Door op de knop Instellingen te klikken in het dialoogvenster kunt u uw scan instellen, inclusief de te gebruiken IP-adressen, poorten en wachttijd.
Nogmaals: zorg ervoor dat u niet beschouwd wordt als een indringer op uw netwerk als u de scantechniek gebruikt.
Het moeilijkste gedeelte is waarschijnlijk het selecteren van uw “printermodel”. Voorheen was het lastig om stuurprogramma's voor uw printer te vinden omdat er vrijwel geen waren. Tegenwoordig is het andersom, nu zijn er teveel stuurprogramma's beschikbaar. Sommige ervan zijn erg goed, anderen zijn juist onbruikbaar.
Als u een recente “database” met beschikbare stuurprogramma's op uw systeem hebt, selecteer dan eerst in het linker deel de fabrikant, en vervolgens in het rechter deel het printermodel. Dit gesplitste venster toont alle PPD die door CUPS zijn gevonden in zijn standaardmap. Dit is normaliter /usr/share/cups/model/
. Als u wilt dat uw stuurprogramma automatisch door CUPS en KDEPrint gevonden wordt, plaats deze dan in die map.
In het volgende venster ziet u een beschrijving van het stuurprogramma dat u zojuist hebt gekozen. De beschrijving komt van de gebruikte PPD.
Probeer voor een echte PostScript®-printer nooit een “Foomatic”- of “Gimp-Print”-PPD te installeren, ook niet als u die erbij krijgt. U zult er niet blij mee worden. Zoek in plaats daarvan de originele PPD op van de fabrikant, het lieftst degene geschreven voor Windows® NT.
Enkele Linux®-distributies leveren voor CUPS elke mogelijke combinatie van Ghostscript-filters en “foomatic” PPD-bestanden die ze konden vinden. Veel van deze filters en bestanden zijn niet echt bruikbaar; ze waren een jaar geleden gemaakt, toen mensen op www.linuxprinting.org voor het eerst begonnen te experimenteren om PPD's voor CUPS van derden te leveren. Hoewel ze destijds als “Alfa” werden aangemerkt zijn ze een eigen leven gaan leiden en kan men ze nu terugvinden op verschillende plaatsen op internet, waarbij CUPS geen gunst wordt gedaan.
Als u niet weet welke u moet gebruiken, ga dan naar:
En vraag daar om hulp. Over een tijdje zal er een document komen dat gedetailleerd de verschillen tussen de verschillende stuurprogramma's en PPD-modellen beschrijft op http://kdeprint.sourceforge.net/. Houd dat in de gaten!
Met de knop kunt u elke andere PPD opvragen die ergens anders op uw beschikbare bestandssysteem staat.
U kunt nu uw eerste stuurprogrammainstellingen kiezen. Het belangrijkste is de standaard papiergrootte. In veel gevallen is dit ingesteld op “Letter”. Als u in een “A4”-land woont (zoals Nederland en België) en u wilt dat uw eerste testpagina er mooi uitziet, zult u dit nu moeten veranderen.
U kunt nu een proefafdruk maken. Klik op de knop .
In het één na laatste scherm kunt u bepalen of u schutbladen wilt instellen, en zo ja welke u wilt gebruiken. Met deze schutbladen wordt het begin en/of einde van elke afdruktaak aangegeven op de betreffende printer. U kunt de schutbladen ook aan- en uitzetten voor het afdrukken in het dialoogvenster taakopties.
Als u zelf schutbladen wilt maken, kopieer ze dan naar /usr/share/cups/banners/
om ze hier te kunnen selecteren. Het moeten PostScript®-bestanden zijn.
In het laatste scherm geeft u een naam aan uw nieuwe printer.
De naam moet beginnen met een letter en kan verder cijfers en underscores bevatten met een maximum van 128 lettertekens. Als u zich hieraan houdt voorkomt u onjuist gedrag van de CUPS-daemon. In CUPS zijn de printernamen niet hoofdlettergevoelig! Dat komt doordat IPP dat eist. Dus DANKA_infotec
, Danka_Infotec
en danka_infotec
zijn allemaal hetzelfde.
In dit hoofdstuk krijgt u enkele tips over verdere instelmogelijkheden die niet beschikbaar zijn in de grafische interface voor CUPS van KDEPrint.
Alle meest gebruikte mogelijkheden en functies die CUPS biedt, worden ondersteund in KDEPrint:
Printerbeheer wordt ondersteund: u kunt printers toevoegen, verwijderen, wijzigen, instellen, testen, uitschakelen, inschakelen...
Taakbeheer wordt ondersteund: u kunt taken annuleren, behouden, vrijgeven, verplaatsen naar andere printer;
Afdrukopties: voor volledige controle zoals aangeboden door CUPS.
U kunt een heleboel informatie over de interne werking van CUPS vinden via de webinterface, die altijd ondersteund wordt door CUPS. U kunt het met elke browser opvragen (ja, zelfs met een tekstbrowser). Ga naar http://localhost:631/ voor de inhoudsopgave. U kunt daar een koppeling vinden naar lokaal beschikbare CUPS-documentatie in HTML en PDF voor wanneer u nieuw bent met CUPS.
U kunt, behalve via KDEPrint, ook toegang krijgen tot CUPS via twee oorspronkelijke CUPS-interfaces: met de commandoregel en met uw browser. Met de vele beschikbare hulpmiddelen voor op de commandoregel kunt u een zo volledig mogelijke controle krijgen over CUPS. De webinterface omvat slechts een deel van alle beschikbare instellingen en mogelijkheden.
Dit geldt ook voor KDEPrint. In de regel is het zo dat nieuwe functies die bij de ontwikkeling van CUPS toegevoegd worden eerst alleen geïmplementeerd worden voor gebruik op de commandoregel. Het is handig om de nieuwste versie van de man-pagina's van CUPS te bekijken als u een nieuwe versie installeert, om op de hoogte te blijven van de nieuwe functies en mogelijkheden.
Het is mogelijk dat, wanneer u een versie van CUPS opwaardeert, uw actieve configuratiebestand niet vervangen wordt voor de nieuwe versie. Dit hangt af van de methode van opwaarderen. Dit heeft als gevolg dat uw nieuwe, verbeterde CUPS-daemon niet wordt gevraagd om de nieuwe mogelijkheden te gebruiken.
U kunt ten alle tijden een lijst van beschikbare bestanden en man-pagina's vinden in de CUPS Software Administrator Manual (http://localhost:631/sam.html#FILES). Typ in Konqueror in het veld Locatie de regels man:/lpadmin
en man:/cupsd.conf
om informatie te vinden over het belangrijkste commando en configuratiebestand (was u al bekend met deze mooie manier van Konqueror om de traditionele man-pagina's van UNIX® te tonen?). Lees deze pagina's door. Vanaf dit punt krijgt u interessante tips en koppelingen naar andere man-pagina's en documentatie.
Hieronder ziet u een manier waarmee u man-pagina's op uw systeem kunt vinden die over CUPS gaan:
kurt@transmeta:~ >
apropos
cups
cups-calibrate (8)- ESP Printer Calibration Tool lpstat (1) - print cups status information cups-lpd (8) - receive print jobs + report printer status to lpd clients classes.conf (5) - class configuration file for cups backend (1) - cups backend transmission interfaces filter (1) - cups file conversion filter interfaces cups-polld (8) - cups printer polling daemon mime.types (5) - mime type description file for cups cupsd (8) - common unix printing system daemon lpadmin (8) - configure cups printers and classes cupsd.conf (5) - server configuration file for cups mime.convs (5) - mime type conversion file for cups printers.conf (5) - printer configuration file for cups mime.convs (5) - mime type conversion file for cups cups-polld (8) - cups printer polling daemon lpstat (1) - print cups status information backend (1) - cups backend transmission interfaces mime.types (5) - mime type description file for cups cupsd (8) - common unix printing system daemon lpadmin (8) - configure cups printers and classes printers.conf (5) - printer configuration file for cups cupsd.conf (5) - server configuration file for cups filter (1) - cups file conversion filter interfaces
Hier vindt u enkele voorbeelden van opties die op dit moment alleen toegankelijk zijn via de commandoregel.
Wanneer u een printer op de commandoregel installeert (of wijzigt), kunt u het gebruik van de printer in kwestie voor bepaalde gebruikers toestaan of weigeren:
lpadmin -p
HeidelbergDigimaster9110
-v
lpd:/10.160.16.99/mqueue
-u
allow:kurt,sylvi,hansjoerg
-E
-P
/home/kurt/PPDs/DVHV.ppd
Dit staat het gebruik van deze (geloof me: erg mooie en tevens erg professionele) printer alleen toe aan de drie vermelde gebruikers en tegelijkertijd weigert het alle andere gebruikers de printer te gebruiken. Als een andere gebruiker probeert af te drukken op de DigiMaster via deze CUPS-server, ontvangt hij of zij de foutmelding client-error-not-possible.
lpadmin -p
HeidelbergDigimaster9110
-v
lpd:/10.160.16.99/mqueue
-u
deny:tackat,boss,waba
-E
-P
/home/kurt/PPDs/DVHV.ppd
Dit weigert het gebruik van dezelfde printer voor de drie genoemde gebruikers en staat het gebruik tegelijkertijd toe aan alle anderen. Wanneer een verworpen gebruiker probeert af te drukken op de DigiMaster via deze CUPS-server, ontvangt hij of zij de foutmelding client-error-not-possible.
U kunt slechts één van deze twee opties tegelijkertijd gebruiken; op dit moment is er nog geen ondersteuning op een soortgelijke optie die op groepen is gebaseerd. Dit zal in de toekomst veranderen.
Soms is het nodig om quota's op te leggen voor bepaalde printers. Met quota's kunt u een limiet instellen voor het aantal pagina's of de hoeveelheid data die mag worden afgedrukt gedurende een bepaalde periode voor de gewenste printer.
U kunt een quota opleggen met de optie -o
bij het installeren van een printer met het commando lpadmin. Dit is ook nogmogelijk na de installatie voor een reeds bestaande printer. Hieronder vindt u enkele richtlijnen (die op het moment van schrijven nog niet stonden in de officiële CUPS-documentatie):
CUPS biedt ondersteuning voor quota's gebaseerd op het aantal pagina's of de bestandsgrootte voor elke printer apart.
Quota's worden voor elke gebruiker apart berekend (dus een enkele set limieten is van toepassing op alle gebruikers voor de gebruikte printer).
Quota's omvatten ook schutbladen (indien gebruikt).
Dat betekent dat het mogelijk is om elke gebruikers maximaal 20 pagina's per dag te laten afdrukken op een dure printer, maar het is niet mogelijk om alle gebruikers dit limiet op te leggen behalve Kurt
of root
.
U kunt de opties job-k-limit
, job-page-limit
en job-quota-period
opgeven wanneer u een nieuwe printer instelt.
Met job-quote-period
bepaalt u de tijd waartussen de quota's berekend worden (de intervallen worden uitgedrukt in seconden; een dag is dus 60x60x24=86.400, een week is 60x60x24x8=604.800 en een maand is 60x60x24x30=2.592.000 seconden).
Als u wilt dat de quota's ook werkelijk werken, zowel moeten time-period als job-k-limit en/of job-page-limit ongelijk zijn aan nul.
De standaardwaarde van job-k-limit
is 0. Dit geeft aan dat er geen limiet ingesteld is.
De standaardwaarde van job-page-limit
is 0. Dit geeft aan dat er geen limiet ingesteld is.
De standaardwaarde van job-quota-period
is 0. Dit geeft aan dat het limiet van toepassing is op alle taken die door de betreffende gebruiker zijn afgedrukt en bij het systeem nog steeds bekend zijn.
Het werkt alleen, wanneer time-period en job-quota-period en/of job-k-limit zijn ingesteld.
lpadmin -p
danka_infotec_4850
-o
job-quota-period=604800
-o
job-k-limit=1024
Hiermee wordt een limiet ingesteld waarbij elke gebruiker gedurende een week in totaal maximaal 1 MB mag afdrukken met de printer genaamd danka_infotec_4850
.
lpadmin p
danka_infotec_4105
-o
job-quota-period=604800
-o
job-page-limit=100
Hiermee wordt een limiet ingesteld waarbij elke gebruiker gedurende een week maximaal 100 pagina's in totaal mag afdrukken met de printer genaamd danka_infotec_4105
.
lpadmin -p
danka_infotec_P450
-o
job-quota-period=604800
-o
job-k-limit=1024
-o
job-page-limit=100
Hiermee wordt een gecombineerd limiet ingesteld waarbij elke gebruiker in totaal maximaal 1 MB en 100 pagina's mag afdrukken voor de printer genaamd danka_infotec_P450
gedurende een week. Het limiet dat het eerst bereikt wordt zal effect hebben.
Het werkt NIET, wanneer alleen een time-period of een job-limit ingesteld is.
lpadmin
-p
danka_infotec_P320
-o
job-quota-period=604800
lpadmin
-p
danka_infotec_FullColor
-o
job-page-limit=100
lpadmin
-p
danka_infotec_HiSpeed
-o
job-k-limit=1024
Er bestaan verschillende manieren om een “rauwe” printer in te stellen. Een erg makkelijke manier is door het commando lpadmin te gebruiken. Als u geen PPD-bestand instelt voor die printer wordt het automatisch een rauwe printer:
lpadmin -p
Raw_Danka_infotec
-E
-v
lpd://10.160.16.137/PORT1
Rauwe printerwachtrijen gebruiken het afdrukbestand niet om het over te zetten naar een ander bestandsformaat. Dat is bijvoorbeeld nodig wanneer u vanaf Windows®-cliënten via Samba met CUPS afdrukt naar een PCL-printer; in dit geval zorgt het stuurprogramma van de printer vanaf de kant van Windows® zelf voor het juiste bestandsformaat dat de printer kan lezen, als dit bestand gefilterd wordt door CUPS zou het eindresultaat juist slechter worden. Onder bepaalde omstandigheden (als u ervoor wilt zorgen dat het bestand “niet-gefilterd” door CUPS wordt doorgestuurd naar de printer) kan “lpadmin zonder PPD” handig zijn.
Dit onderdeel van het handboek van KDEPrint zal ontstaan uit reacties van lezers. Dit is slechts een beginnetje.
Geen enkel systeem is perfect. Hier vindt u enkele valkuilen waar men vaak in valt.
Printerbeheer: standaardbewerkingen worden ondersteund (toevoegen/verwijderen/instellen).
Elke gebruiker kan de printers die hij of zij wil gebruiken voordefiniëren door de host op te geven en de daarbij behorende printerwachtrijen. Printers worden opgeslagen per gebruiker apart. Deze module is opgebouwd rond het rlpr-hulpprogramma rlpr.
Module wordt standaard gebruikt (bijvoorbeeld bij de allereerste start van KDE)
Algemene module die alleen het versturen van printtaken ondersteunt. Er wordt geen printer- of taakbeheer ondersteunt. Het is ontwikkeld met de bedoeling het op veel verschillende UNIX®-smaken te laten werken: Linux®/LPR, HP-UX®, Solaris en IRIX®. Het biedt tevens enige ondersteuning voor LPRng-uitbreidingen (zoals de afwezigheid van het doorgaanteken \
in printcap
-bestanden.
Eenvoudige (oude?) ondersteuning voor LPR. Een module voor LPRng is in ontwikkeling en zal hopelijk beschikbaar zijn bij de KDE 3.0-uitgave.
Een module voor LPRng voor KDEPrint is in ontwikkeling en hopelijk beschikbaar voor de KDE 3.0-uitgave.
Deze module geeft u de mogelijkheid om het afdrukcommando volledig op te geven (zoals bij Netscape®). Daarvoor wordt een invoervak toegevoegd in het afdrukdialoogvenster. Het kan in veel gevallen gebruikt worden, bijvoorbeeld bij een zelfgemaakt afdrukprogramma.
Mijn werkgever is Danka Duitsland GmbH, een voorname en fabrikant-onafhankelijke aanbieder van professionele en hoge snelheids-afdruksystemen, voor zowel zwart-wit als voor kleur. Danka biedt hardware, software, service, onderhoud, consumables en aangepaste oplossingen rond de aangeboden producten. Ik ben bij Danka een systeemontwikkelaar. Danka levert onder andere voor Heidelberg (voorheen Kodak), Canon, Hewlett-Packard®, Hitachi Infotec en Efl.
Mijn eerste kennismaking met Linux® en de vrije software-gemeenschap was nog niet zo lang geleden. Toen ik begin 1999 met Linux® begon, was mijn grootste teleurstelling de slechte ondersteuning voor afdrukken. Jawel, ik kreeg het voor elkaar om met onze machines simplexafdrukken te laten maken, maar duplex, dat was een heel ander verhaal. En denk eens aan gaatjes maken in de afdrukken, sorteren, of nieten, voorschutbladen en alle andere mogelijkheden die wij onze klanten bieden? Geen sprake van - tenminste, niet voor mij als een niet-kenner!
Ik ging op zoek op het Internet voor een oplossing. Gelukkig kondigde Mike Sweet, ontwikkelaar van het principe van CUPS, niet veel later, in mei 1999 de eerste bètaversie van zijn geweldige afdruksoftware aan. Na het een tijdje geprobeerd te hebben wist ik dat dit was wat ik zocht.
Vervolgens probeerde ik Linux®-distributies geïnteresseerd te maken in CUPS. Dit was - geloof het of niet - nog veel moeilijker! Ze dachten blijkbaar dat het neusje van de zalm te hebben voor het afdrukken. Een reden hiervoor is waarschijnlijk dat ze (net als vele Linux®-ontwikkelaars) nooit hoefden te denken over de beste ondersteuning voor een printerduplexer, omdat ze zo'n ding zelf gewoonweg niet nodig hadden...
En ten slotte leidde mijn pogingen om bij Linux®-bladen interesse te kweken in CUPS tot mijn “ondergang” - een redacteur kreeg me zover dat ik een hele serie over het onderwerp schreef. Zo ben ik aan de naam “CUPS-missionaris” gekomen. Ik zal spoedig ook niet van deze naam afkomen, nu zelfs de KDE-mensen mij in hun tijdskader van de uitgaves hebben gezet. O mijn God...
In ieder geval is CUPS op dit moment de wereld aan het veroveren en volgens mij wordt het een triomfantelijke overwinning ook. Ik ben best een beetje trots dat ik hieraan heb bijgedragen vanaf het prille begin.
Dit moet u aanmoedigen: zelfs sommige Linux®-gebruikers met meer ervaring dan u zijn sceptisch over CUPS, en zelfs als uw programmeertalenten niets zijn (zoals de mijne) - zijn er een groot aantal taken die u kunt doen om aan de Free Software Community bij te dragen. In ieder geval in het KDE project.
Ik zou graag de volgende personen bedanken...
Allereerst Mike Sweet voor het ontwikkelen van CUPS;
Jean-Eric Cuendet voor kups en qtcups, de voorlopers van KDEPrint;
Michale Goffioul voor al het harde recente werk;
Martin Konold voor het twee keer nadenken;
Sven Guckes omdat hij mij een aantal dingen heeft geleerd over de kunst van “het overleven in de console” (voor het geval KDE niet beschikbaar is ;-) );
...en vele vele anderen, te veel om op te noemen die mij toestonden “bits en bytes” van hun kennis over te nemen;
en “last but not least”: Tom Schwaller voor zijn aanzet tot het “schrijven van documentatie”.
KDEPrint is ontwikkeld op een systeem dat CUPS 1.1.6 gebruikt. KDEPrint is getest onder andere versies van CUPS en tot zover zijn er geen problemen ondervonden. Op het moment van schrijven kwam CUPS 1.1.9 uit met een aantal nieuwe functies die nog niet ondersteund zijn door KDEPrint. Natuurlijk kunt u deze gebruiken, maar daarvoor dient u langs KDEPrint te werken en gebruik te maken van de CUPS-hulpmiddelen voor de commandoregel.CUPS commandoregelhulpmiddelen gebruiken, of de configuratiebestanden handmatig te bewerken. De ontwikkeling van KDEPrint gaat door en we streven ernaar dat dit handboek altijd de beste gebruikersdocumentatie ervoorzal zijn.
KDEPrint copyright 2001, Michael Goffioul (kdeprint AT swing.be)
Deze toepassing valt onder de bepalingen van de GNU General Public License.
Documentatie copyright 2001, Kurt Pfeifle, (kpfeifle AT danka.de)
Deze documentatie valt onder de bepalingen van de GNU vrije-documentatie-licentie.
Op- of aanmerkingen over de vertalingen van de toepassing en haar documentatie kunt u melden op http://www.kde.nl/bugs.
Dit document is vertaald in het Nederlands door Otto Bruggeman.
Dit document is vertaald in het Nederlands door Tijmen Baarda.
De vertaling werd nagelezen door Rinse de Vries.
Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team