Nicht unterstützte Drucker als Windows-Freigabe

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

  2. Einen Editor öffnen

  3. Root-Rechte

Hinweis:

Dieser Artikel erfordert gewisse Grundkenntnisse in Windows und Linux.

Inhaltsverzeichnis
  1. Vor- & Nachteile der Lösung
  2. Arbeitsschritte unter Windows
    1. Vorausgesetzte Kenntnisse
    2. Vorbereitung
    3. Installation
    4. Installation überprüfen
    5. GSPrint-Konfiguration
    6. Drucken mit GSPrint
    7. PostScript-Drucker installieren
    8. PostScript-Drucker konfigurieren
    9. Testen
    10. Drucker im Netzwerk freigeben
  3. Arbeitsschritte unter Linux
    1. Für KDE
    2. Konfigurationsdatei bearbeiten
  4. Windows auf einem Virtuellen PC
  5. Links

Vorneweg: In dieser Anleitung geht es nicht darum den Drucker direkt unter Linux einzubinden, da dies mangels Treiber leider nicht möglich ist. Sondern darum einen virtuellen Postscript-Drucker unter Windows zu installieren, welcher intern den Druckauftrag an den GDI-Drucker weiterreicht. Anschließend wird dieser virtuelle PostScript-Drucker unter Windows als Netzwerkdrucker freigegeben und einfach mit einem PostScript-Treiber unter Linux ins System eingebunden. Ein PostScript-Treiber ist normalerweise in jedem (Linux-)System enthalten und wird bei der Systeminstallation automatisch mitinstalliert.

GDI-Drucker sind Drucker, bei denen der größte Teil der Druckerlogik im Treiber enthalten ist. Dadurch sparen die Hersteller an der Hardware des Druckers, da die Druckaufträge auf dem PC verarbeitet werden und anschließend nur noch gedruckt werden müssen. Außerdem sind diese Treiber, bis auf wenige Ausnahmen, leider nur für Windows verfügbar. GDI-Drucker sind meist im Einstiegssegment zu finden.

Vor- & Nachteile der Lösung

Vorteile:

Nachteile:

Hinweis:

Es wird ein PC oder ein virtueller PC mit Windows benötigt. In dieser Beschreibung wird nur die Vorgehensweise für einen PC beschrieben, die Vorgehensweise für einen VPC ist aber übertragbar und muss nur an die Unterschiede von einem physikalischen zu einem virtuellem System angepasst werden.

Arbeitsschritte unter Windows

Vorausgesetzte Kenntnisse

Vorbereitung

Um späteren Ärger zu vermeiden, sollte man, bevor man mit der eigentlichen Installation beginnt, überprüfen, ob der GDI-Drucker unter Windows fehlerfrei funktioniert. Sonst kann es passieren, dass man alles richtig gemacht hat und trotzdem nichts gedruckt wird.

Wenn man Windows auf einem VPC installieren will, sollte man erst dies fehlerfrei erledigen (siehe Windows auf einem Virtuellen PC) und erst anschließend mit der folgenden Anleitung fortfahren.

Installation

Die folgenden Programme herunterladen und unter Windows 2000/XP/2003/Vista(?) (mit Standardeinstellungen) installieren. Prinzipiell können auch andere Windows-Systeme verwendet werden. Getestet wurde dieser Artikel auf einem Windows 2003 Server. Windows 2000/XP funktionieren ebenfalls mit diese Lösung. Einerseits aufgrund der ähnlichen Architektur, andererseits wurde diese Lösung ursprünglich mit 2000/XP veröffentlicht.

Windows-Programme Beschreibung
Ghostscript (GPL) (getestet mit Version 8.61 und 8.63) 🇬🇧 Wird benötigt, um die PostScript-Dateien zu rendern.
GSview (getestet mit Version 4.9) 🇬🇧 Eine Grafische Oberfläche zu Ghostscript
Redmon (getestet mit Version 1.7) 🇬🇧 Erweitert das Windows-Drucksystem, um die Funktion einen Drucker umzuleiten.
Adobe Universal PostScript Treiber (getestet mit Version 1.06) noch NICHT installieren 🇬🇧 Installiert den virtuellen PostScript-Drucker (inklusive Treiber)

Installation überprüfen

Als nächstes startet man GSview und öffnet eine der Beispieldateien, z.B. tiger.eps (im Programmordner, Beispiel: C:\Programme\gs\gs8.61\examples). Normalerweise sollte man die Datei ohne Fehler öffnen können und kann dann direkt mit dem nächsten Schritt fortfahren.

Sollte es beim Drucken einer Testseite des Postscript-Druckers zu folgender Fehlermeldung kommen: "Fehler beim schreiben auf RPTx... Der Druckerbefehl ist ungültig.", so ist bei den Spool-Einstellungen die Unterstützung für bidirektionalen Druck zu deaktivieren.

GSPrint-Konfiguration

GSPrint liegt im Programmverzeichnis von GSview (Beispiel: C:\Programme\Ghostgum\gsview\gsprint.exe). GSPrint wird benötigt, um den Druckauftrag im Postscript-Format an den unter Windows installierten GDI-Drucker zu schicken. Bevor aber GPSprint drucken kann, muss man ihm sagen, welchen Drucker er benutzen soll und wo Ghostscript liegt. Dazu erstellt man eine neue Datei namens gsprint.cfg. Diese speichert man im gleichen Verzeichnis wie gsprint.exe und bearbeitet sie wie folgt:

Inhalt der gsprint.cfg

-noquery
-color    (optional - für Farbdrucker)
-printer
<Druckername>
-ghostscript
"C:\Programme\gs\gs8.61\bin\gswin32c.exe"

Achtung!

In der Konfigurationsdatei dürfen keine zusätzlichen Leerzeichen sein und am Schluss muss eine (nicht mehr und nicht weniger) leere Zeile stehen! Der Druckername muss exakt dem Druckernamen in Windows entsprechen!

Die Versionsnummer im Pfad muss natürlich auf die verwendete Version angepasst werden.

Drucken mit GSPrint

Nachdem GSPrint konfiguriert wurde, kann man einen ersten Testlauf starten und testen, ob bis jetzt alles funktioniert hat:

cd C:\Programme\Ghostgum\gsview\
gsprint.exe C:\Programme\gs\gs8.61\examples\tiger.eps 

Wenn alles funktioniert, sollte jetzt das Beispiel ausgedruckt werden.

PostScript-Drucker installieren

Jetzt ist es an der Zeit den PostScript-Drucker zu installieren, der später im Netzwerk für die Samba-Clients freigegeben wird. Dazu wird der PostScript-Treiber von Adobe mit folgenden Einstellungen installiert:

PostScript-Drucker konfigurieren

Damit Druckaufträge vom PostScript-Drucker auf dem GDI-Drucker ankommen, muss nur noch der Druckauftrag weitergeleitet werden. Dies wird durch Redmon realisiert. Dazu RedMon herunterladen und installieren.

In den "Eigenschaften" vom gerade erstellten PS-Drucker gibt es den Reiter "Anschlüsse". Dort wird jetzt ein neuer von RedMon zur Verfügung gestellten umgeleiteten Anschluss erstellt.

Den neuen Anschluss ("RPT1:") konfigurieren:

Die Anschluss-Eigenschaften ("RPT1: Properties") ausfüllen:

Der Rest kann auf den Voreinstellungen belassen werden.

Testen

Hat alles funktioniert, kann man jetzt aus jeder Anwendung heraus den Postscript-Drucker verwenden. Intern wird der Druckauftrag an GSPrint weitergeleitet, welches dann einfach das empfangene Postscript verarbeitet und einen neuen Druckauftrag an den GDI-Drucker schickt.

Drucker im Netzwerk freigeben

Dazu genügt ein Rechtsklick auf "Freigabe..." auf den erstellten PostScript-Drucker.

Anschließend auf "Drucker freigeben" klicken und (falls nicht schon voreingestellt) einen eindeutigen Druckernamen angeben (am besten ohne Sonderzeichen/Leerzeichen). Jetzt noch mit "OK" die Einstellungen übernehmen.

Arbeitsschritte unter Linux

Nun muss man den freigegebenen PostScript-Drucker unter Linux einbinden. Dieser kann ganz normal wie jede andere Windows-Freigabe eingebunden werden.

Für KDE

Unter "Systemeinstellungen → Drucker → Hinzufügen → Neuen Drucker → Klasse erstellen → SMB-Druckressource (Windows)" auswählen. Anschließend müssen noch die richtigen Zugangsdaten eingeben und der Drucker ausgewählt werden.

Hinweis:

Als Treiber muss "Post-Script" anstatt eines spezifischen Treibers ausgewählt werden.

Konfigurationsdatei bearbeiten

Wer mit der Drucker-GUI nicht zurechtkommt, kann den Drucker auch mit falschen Netzwerk-Einstellungen hinzufügen und anschließend die Konfigurationsdatei /etc/cups/printers.conf mit einem Editor[2] mit Root-Rechten[3] nach folgendem Schema bearbeiten:

#Windows-Freigabe ohne Passwort und ohne Domain
DeviceURI smb://server/druckername
#Windows-Freigabe ohne Passwort und mit Domain
DeviceURI smb://domain/server/druckername
#Windows-Freigabe mit Passwort und ohne Domain
DeviceURI smb://user:passwort@server/druckername
#Windows-Freigabe mit Passwort und mit Domain
DeviceURI smb://user:passwort@domain/server/druckername

Anschließend muss man noch CUPS (das Standard-Drucksystem) neustarten [1]:

sudo /etc/init.d/cupsys restart 

Windows auf einem Virtuellen PC

Damit dies funktioniert, muss man den VPC so konfigurieren, dass er von außen wie ein normaler PC im Netzwerk aussieht und anzusprechen ist.

Die Potentiellen Fehlerquellen sind dabei:

Ansonsten muss man nur die Arbeitsschritte auf den VPC übertragen und die Unterschiede zwischen einem PC und einem VPC beachten.