# FAQ Tips > Hier Suchen und Finden, Links, Tutorials >  Drucker unter Linux: Tipps&Links

## stefan.becker

1) CUPS

2) Treiber

3) PDF Drucker

4) Fax-Lösungen

5) Universelle Druckerauswahl

6) CUPS im Netzwerk

7) Füllstand anzeigen


13.05.06: Erstellt
20.05.06: Lexmark-Links ergänzt
25.05.06: Brother Treiber
06.01.07: Links kontrolliert & Aktualisiert
31.12.07: 7) Füllstand anzeigen, Kyocera
17.02.08: Mozilla/kprint, Links kontrolliert & aktualisiert
25.10.08: Gutenprint ersetzt gimpprint
15.03.09: Links kontrolliert & Aktualisiert, cups-pdf Abschnitt überarbeitet
15.12.09: Links aktualisiert, kdeprint entfernt, libcapifax

----------


## stefan.becker

*Allgemeines*

Das *C*ommon *U*nix *P*rinting *S*ystem ist inzwischen die Standarddruckerlösung unter Linux.

CUPS ist ein Serverdienst. Es realisiert den neuen Standard IPP (Internet Printing Protocol).

CUPS ermöglicht nicht nur das Drucken am Linux-PC, sondern bietet Druckdienste im gesamten Netzwerk an.

Die folgende FAQ beschreibt, was CUPS genau ist und leistet:

http://www.cups.org/documentation.php/overview.html

Homepage: http://www.cups.org/

Howto hier aus dem Forum: http://www.linuxforen.de/forums/showthread.php?t=32189&


*Verwaltung*

CUPS bietet ein Webfrontend zur Verwaltung. Einfach im Browser der Wahl die URL http://localhost:631/ eingeben, als root anmelden.

Man erhält eine Übersicht über alle Drucker, kann Drucker hinzufügen/löschen/ändern, Druckjobs stoppen etc.

Falls es Probleme bei der Root-Anmeldung geben sollte, muss man u. U. ein eigenes Cups-Passwort vergeben:



```
lppasswd -g sys -a root
```

(Hinweis von kreol)

----------


## stefan.becker

Nicht für alle Druckermodelle sind bei einer Linux-Distribution Treiber enthalten. Folgende Drucker werden von CUPS direkt unterstützt.

http://www.cups.org/ppd.php

Natürlich können auch andere Drucker eingebunden werden, dazu folgende Links:


*HP-Drucker*

HP bietet eine sehr gute Linuxunterstützung und entwickelt eigenständige Treiber.

Homepage:http://hplipopensource.com/hplip-web/index.html

Die früheren Projekte HPIJS und Officejet sind jetzt hierdrin aufgegangen.


*Canon-Drucker*

Canon bietet auf einem FTP-Server für einige Drucker eigene Treiber an:

ftp://download.canon.jp/pub/driver/bj/linux/
http://www.linuxforen.de/forums/showthread.php?t=153090


*Samsung-Drucker*

http://support.samsung.de/support/su...down_main.aspx


*Lexmark-Drucker*

Für einige Druckermodell bietet auch Lexmark Linixtreiber an.

www.lexmark.de

Außerdem bietet Lexmark mit dem Linux Driver Kit eine weitere Treiberbibliothek. Hierzu unter www.lexmark.com auf "Drivers&Downloads" und dann auf "Linux Driver Kit" gehen (Hinweis von jaus).

Für Suse gibt es eine Sammlung von Lexmark Treibern: http://packman.links2linux.de/package/lexmark-drivers


*Brother-Drucker*

http://solutions.brother.com/linux/s...r_drivers.html


*Epson-Drucker*

http://www.avasys.jp/lx-bin2/linux_e/spc/DL1.do


*Kyocera-Drucker*

http://www.kyoceramita.de/index/prod....PRINT.DE.html


*Gutenprint*

Im Rahmen des Gimp-Projektes entstand die Lösung "gimp-print", die ebenfalls einige Treiber bietet. Inzwischen wurde das Projekt in "Gutenprint" umbenannt.

Homepage: http://gutenprint.sourceforge.net/


*Turboprint*

Turboprint ist eine herstellerunabhängige Treiberlösung. Hauptsächlich werden Canon, Epson und HP-Drucker unterstützt.

Die Turboprint-Treiber haben eine sehr gute Qualität. Es werden Funktionen wie z. B. Düsenreinigung angeboten, die sonst kaum unter Linux zur Verfügung stehen.

Homepage: http://www.turboprint.de/

Unterstützte Drucker: http://www.turboprint.de/printers.html

Hinweis: Der Kaufpreis berechtigt zum Download von Updates für ein 1/2 Jahr. Die zuletzt heruntergeladene Version ist natürlich unbefristet nutzbar.


*Postscript und PCL*

Postscript und PCL (von HP) sind Standarddruckersprachen. Viele Drucker anderer Hersteller unterstützen diese beiden Sprachen. Man sollte daher einfach mal im Handbuch nachsehen, ob der Drucker die Sprache unterstützt und wie das eingeschaltet wird. Folgende Standardtreiber bieten sich ansonsten an:

Postscript: Generic Postscript, Apple Laserwriter
PCL: HP-Laserjet


*Kein Treiber gefunden?*

Ist man nicht fündig geworden, gibt folgende Seite häufig Tipps:

http://www.linuxprinting.org/printer_list.cgi

----------


## stefan.becker

*CUPS-PDF*

CUPS-PDF integriert einen PDF Drucker, über den aus jeder Linux Anwendung in eine PDF Datei gedruckt werden kann.

Bei der Installation wird automatisch ein Drucker "CUPS-PDF" eingerichtet. Die Dokumente landen im Verzeichnis "/var/spool/cups-pdf/username". Dieser Pfad kann in der Datei "/etc/cups/cups-pdf.conf" geändert werden, so dass sie z. B. unter "~/pdf" landen:


```
Out ${HOME}/pdf
```

Siehe auch: http://www.linuxforen.de/forums/show...1&postcount=10

Homepage: http://www.cups-pdf.de/

Für Suse finden sich im Buildservice fertige Pakete (http://software.opensuse.org/search, Suche nach "cups-pdf").


*KDE-Print*

Mit dem KDE-Druckbefehl *kprinter* (bis KDE 3.x) lassen sich aus jeder KDE-Anwendung heraus problemlos PDF-Dokumente erstellen. KDE4 Anwendungen nutzen den QT-Druckdialog und haben damit ebenfalls einen PDF-Export.


*PDF-Drucker in CUPS manuell einrichten*

Mit Bordmitteln lässt sich kostenfrei ein PDF-Drucker einrichten, der von jedem Client aus im Netzwerk benutzt werden kann. Damit hat man den Acrobat Destiller sozusagen kostenfrei.

1) Script zum Konvertieren Postscript->PDF:



```
#!/bin/sh
# Convert PostScript to PDF.
umask 002
OPTIONS=""
while true
do
case "$1" in
-*) OPTIONS="$OPTIONS $1" ;;
*) break ;;
esac
shift
done

if [ $# -lt 1 -o $# -gt 2 ]; then
echo "Usage: `basename $0` [options...] input.ps [output.pdf]" 1>&2
exit 1
fi

infile=$1;

if [ $# -eq 1 ]
then
outfile=$1
else
outfile=$2
fi

# Doing an initial 'save' helps keep fonts from being flushed between pages.
exec gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
-sOutputFile=$outfile $OPTIONS -c save pop -f $infile
exec chmod a+r $outfile
```

Dieses Script als Datei "/usr/lib/cups/pdf/ps2pdf.cups" speichern (Verzeichnis vorher anlegen) und ausfühbar machen (chmod 755 /usr/lib/cups/pdf/ps2pdf.cups).

2) PDF-Backend



```
#!/bin/sh
#
umask 002
PDFBIN=/usr/lib/cups/pdf/ps2pdf.cups
FILENAME=
# filename of the PDF File
PRINTTIME=`date +%Y-%m-%d_%H.%M.%S`
# no argument, prints available URIs
if [ $# -eq 0 ]; then
if [ ! -x "$PDFBIN" ]; then
exit 0
fi
echo "direct pdf \"Unknown\" \"PDF Creator\""
exit 0
fi
# case of wrong number of arguments
if [ $# -ne 5 -a $# -ne 6 ]; then
echo "Usage: pdf job-id user title copies options [file]"
exit 1
fi
# get PDF directory from device URI, and check write status
PDFDIR=${DEVICE_URI#pdf:}
if [ ! -d "$PDFDIR" -o ! -w "$PDFDIR" ]; then
echo "ERROR: directory $PDFDIR not writable"
exit 1
fi
# generate output filename
OUTPUTFILENAME=
if [ "$3" = "" ]; then
OUTPUTFILENAME="$PDFDIR/unknown.pdf"
else
if [ "$2" != "" ]; then
OUTPUTFILENAME="$PDFDIR/$2-$PRINTTIME.pdf"
else
OUTPUTFILENAME="$PDFDIR/$PRINTTIME.pdf"
fi
echo "PDF file: $OUTPUTFILENAME placed in: $PDFDIR" >> $LOGFILE
fi
# run ghostscript
if [ $# -eq 6 ]; then
$PDFBIN $6 $OUTPUTFILENAME >& /dev/null
else
$PDFBIN - $OUTPUTFILENAME >& /dev/null
fi

exit 0
```

Diese Datei als "/usr/lib/cups/backend/pdf" speichern und ausführbar machen.

3) Druckerdefinition "distiller.ppd" installieren

Die Datei "distiller.ppd" downloaden und nach "/usr/share/cups/model" kopieren.

http://www.prepress.ch/d/pdf/web/ppd.html

Alternativ in Google nach "distiller.ppd" suchen.

4) PDF Drucker anlegen



```
lpadmin -p PDF -v pdf:/tmp -E -P /usr/share/cups/model/distiller.ppd
```

Dieser Befehl legt einen Drucker mit dem Namen "PDF" an. Die erzeugten PDF-Dateien werden dann im Verzeichnis "/tmp" angelegt.

Der Drucker kann natürlich auch mit dem CUPS-Webfrontend (siehe oben) angelegt werden.

5) CUPS neu starten

Erst nach dem Neustart steht der PDF Drucker zur Verfügung:



```
/etc/rc.d/init.d/cups restart
```

Quelle: http://www.linuxquestions.org/linux/...e_in_Slackware

----------


## stefan.becker

*EFAX-GTK (Modem)*

Fax-Programm mit GTK/Gnome-Interface. EFAX-GTK ist ein Frontend für EFAX. 

Im README wird beschrieben, wie man eine CUPS-Faxqueue einrichtet: http://efax-gtk.sourceforge.net/README

Homepage: http://efax-gtk.sourceforge.net/

EFAX: http://www.cce.com/efax/


*libcapifax (ISDN)*

In der libcapifax ist ein Script zum Einrichten eines CUPS-Fax-Druckers enthalten. Einrichtung siehe README.

http://www.tabos.org/ffgtk/download.php

(Tipp von drcrux)


*Hylafax*

Hylafax ist die Standard-Server-Fax-Lösung unter Linux.

Homepage: http://hylafax.sourceforge.net/

----------


## stefan.becker

*KDE-Print (nur bis KDE 3.x)*

In KDE steht der universelle Druckbefehl "kprinter" zur Verfügung, der zum KDE-Standardumfang gehört. Er bietet unter anderem:

- Die Cups-Drucker
- Faxen per EFAX
- PDF
- Datei
- Mail

Der Druckbefehl kann auch in nicht-KDE-Anwendungen verwendet werden, sofern ein Druckbefehl im Programm eingegeben werden kann. Als Druckbefehl wählt man dann:



```
kprinter --stdin
```

Homepage: http://printing.kde.org/


*GTKLP*

GTKLP ist ein GTK/Gnome-Frontend für CUPS. Es bietet eine Auswahl aller CUPS-Drucker, je Drucker können alle Einstellungen von CUPS und auch druckerspezifische Einstellungen vorgenommen werden.

Homepage: http://gtklp.sourceforge.net/


*Druckbefehle in Anwendungen einbinden*

Mozilla, Firefox, Thunderbird&Co.: http://ubuntuforums.org/showthread.php?t=205050

----------


## stefan.becker

CUPS als Serverdienst realisiert einen Printserver im Netzwerk. Jeder Client im Netz kann die Drucker des CUPS-Servers nutzen.


*Howtos zu CUPS und Samba*

http://gertranssmb3.berlios.de/outpu...html#id2564439
http://www.linuxprinting.org/kpfeifl...1th-draft.html


*über Samba freigegebene Drucker im Windows Client*

Im Normalfall muss man nur einen Netzwerkdrucker einrichten, die per Samba freigegebenen Drucker sollten beim Durchsuchen des Netzwerks automatisch gefunden werden.

Falls die obige Methode mit der Auswahl des Netzdruckers nicht geht, folgende Methode testen:

- lokalen Drucker mit Treiber passenden Typs installieren, Anschluss "lpt1:"
- Kommandozeile öffnen
- Befehl eingeben


```
net use lpt1 \\192.168.1.1\usblp0 /PERSISTENT:YES
```

"192.168.1.1" ist zu ersetzen mit der IP-Adresse des Linuxservers, "usblp0"  mit dem Druckernamen.

Durch den net use-Befehl wird die lokale lpt1-Schnittstelle des Gastes auf den Netzdrucker umgelenkt.


*Windows Client: Netzwerkdrucker über IPP*

Falls Cups am Host installiert ist, kann man darüber den Drucker auch ohne Samba nutzen. Dazu wird das sogenannte *I*nternet *P*rinting *P*rotocol (IPP) verwendet.

Windows 2000/XP:

- Drucker hinzufügen
- Netzwerkdrucker auswählen
- Verbinden mit URL auswählen
- Treiber für passendes Modell installieren

Als URL muss z. B. eingegeben werden:



```
http://192.168.1.1:631/printers/usblp0
```

"192.168.1.1" ist zu ersetzen mit der IP-Adresse des Linuxservers, "usblp0"  mit dem Druckernamen.

Bei neueren Windows Versionen ist IPP standardmäßig vorhanden. Bei älteren Versionen (z. B. Windows 9x/ME) lässt es sich nachrüsten:

http://tig.csail.mit.edu/printing/windows/win9x.html


*Kein Druckertreiber für Client vorhanden*

Gibt es für das Betriebssystems des Clients keinen speziellen Druckertreiber für den Netzwerkdrucker (Bsp: kein Treiber für Win95 Client), hilft hier die Postscriptfähigkeit von CUPS. Druckdaten in Form von Postscript verarbeitet CUPS problemlos.

Lösung in diesem Fall: Man verwendet am Client einfach einen Treiber für ein Druckermodell, das Postscript versteht. In solchen Fällen nehme ich für Windows Clients immer den Treiber für einen Apple Laserwriter.

----------


## stefan.becker

Hier sind folgende Lösungen bekannt:

- HP-Drucker: Für HP-Drucker geht das über die HPLIP-Toolbox
=> http://hplipopensource.com/hplip-web/index.html

- Turboprint: Für viele Drucker im Programm "xtpconfig" unter Werkzeuge/Tintenstand
=> www.turboprint.de

- libinklevel: GPL Lösung für viele Drucker (http://libinklevel.sourceforge.net/#supported)
=> http://libinklevel.sourceforge.net/ (Bibliothek)
=> http://libinklevel.sourceforge.net/#installation (GUIs)

----------

