Login
Newsletter
Mo, 20. November 2000, 23:49

Mit dem Windows-Emulator WINE native Linuxdrucker verwenden

Ein HOWTO zum Drucken mit WINE.

Wie im offiziellen HOWTO beschrieben, gibt es zwei Möglichkeiten, über WINE die Drucker anzusteuern:

  • Mit einem 16-Bit-Windows-Treiber einen echten Drucker einrichten
  • Mit dem WINEPS-Druckertreiber das Linux-Spoolsystem ansprechen

Die erste Variante ist nicht praktikabel, die zweite kompliziert einzurichten und im offiziellen HOWTO sehr schlecht beschrieben.

Man geht wie folgt vor:

1.) Registrierung

Es gibt eine REG-Datei, die zu diesem Zwecke mit WINE mitgeliefert wird, die jedoch vom Registrierungseditor abgewiesen wird. Darum gilt es, die Registrierung von Hand zu bearbeiten. Für Programme, die sich ohne installiertes Windows starten lassen sollen. Hierfür ist es hilfreich, sich das von Corel modifizierte WINE-Paket zu verwenden.

Für Windows 95 und Windows 98:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers\Wine PostScript Driver]
"Attributes"="dword:00000000"
"Default Devmode"=
"Name"="Wine PostScript Driver"
"Port"="LPT1:"
"Print Processor"="WinPrint"
"Printer Driver"="PS Driver"
"Priority"="dword:00000000"
"Start Time"="dword:00000000"
"Status"="dword:00000000"
"Until Time"="dword:00000000"

Für Windows NT:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Environments\Windows 4.0\Drivers\PS Driver]
"Configuration File"="WINEPS.DRV"
"Data File"=""
"Driver"="WINEPS.DRV"
"Version"="dword:0a000000"
"Datatype"=""
"Dependent Files"=""
"Help Files"=""
"Monitor"=""

Hinweis: Verwendet die Zielanwendung ein Vorinstalliertes Windows 9x und es sollen mehrere Drucker verwendet werden, so muß der Eintrag wiederholt werden, jedoch der Name "Wine PostScript Driver" durch einen anderen Namen, sowohl im Schlüssel, als auch in der Variablen "Name"= ersetzt werden. Der Port dementsprechend durch einen anderen LPT-Port. (Es handelt sich um vorgegaukelte Schnittstellen, die mit der tatsächlichen Schnittstelle nichts zu tun haben).

Zum Verständnis: der in eckigen Klammern angegebene Begriff stellt den Pfad in der Registrierungsbaumstruktur dar. Man sollte nach Möglichkeit den Windows-Regedit verwenden und sich durch die Struktur klicken bis zu jenem Punkt, an dem der Zweig nicht mehr existiert. Ab da gilt es, neue Schlüssel anzulegen. Dann werden die Einträge erstellt. Es handelt sich bei allen Einträgen, die das Kürzel "dword" enthalten um einen Eintrag des Typs DWORD, die als Wert den Wert hinter "dword:" bekommen sollen. Anderenfalls handelt es sich um Zeichenketten-Variabeln.

2.) WIN.INI-Datei

Auch in der WIN.INI gilt es, die Drucker dem Windows-System bekannt zu geben. Hiezu muß man einen Abschnitt "[DEVICES]" suchen oder ggf. anlegen und darunter Einträge für die Drucker:

Wine PostScript Driver=WINEPS,APSlp:

Links des Gleichheitszeichen wird der Drucker name, wie man ihn in der Registrierung verwendet hat, wieder eingesetzt. Nach "APS" wird der Name des Linux-Druckers eingesetzt. Hat man einen zweiten Drucker, der unter Linux "lp2" heißt und nennt diesen als Windowsdrucker "Zweitdrucker", hieße der Eintrag:

Zweitdrucker=WINEPS,APSlp2:

Möchte man nun einen Drucker als Standarddrucker definieren, so fügt man dementsprechend im Abschnitt "[WINDOWS]" hinzu:

device=Wine PostScript Driver,WINEPS,APSlp:

(device=Windowsdruckername,WINEPS,APSlinuxdruckername:)

3.) Font-Metrics

Ein Drucker hat normalerweise interne Schriftarten, doch bei WINEPS handelt es sich um einen virtuellen Drucker, der Windows als echt vorgegaukelt wird. Darum muß man auch Systemschriften simulieren, was mittels AdobeFontMetrics (AFM-Dateien) realisiert wird. Beim WINE-Treiber handelt es sich um ganz spezielle...Sie befinden sich auf:

ftp://ftp.adobe.com/pub/adobe/type/win/all

Dort gibt es ein Unterverzeichnis für AFM-Dateien und dort wieder verschiedene Serien. Die Serie 35 wird komplett gebraucht. Diese Dateien werden nun in ein Verzeichnis gelegt, das für alle Benutzer lesbar ist. Dann wird für jede einzelne Datei der Pfad in der wine.conf definiert. Da es sich um Sklavenarbeit handelt, könnt ihr diesen Abschnitt hier herauskopieren, wenn ihr als Verzeichnis /usr/include/afmfiles verwendet.

[afmfiles]
file1=/usr/include/afmfiles/cr______.afm
file2=/usr/include/afmfiles/agd_____.afm
file3=/usr/include/afmfiles/agdo____.afm
file4=/usr/include/afmfiles/agw_____.afm
file5=/usr/include/afmfiles/agwo____.afm
file6=/usr/include/afmfiles/bkd_____.afm
file7=/usr/include/afmfiles/bkdi____.afm
file8=/usr/include/afmfiles/bkl_____.afm
file9=/usr/include/afmfiles/bkli____.afm
file10=/usr/include/afmfiles/cob_____.afm
file11=/usr/include/afmfiles/cobo____.afm
file12=/usr/include/afmfiles/coo_____.afm
file13=/usr/include/afmfiles/hv______.afm
file14=/usr/include/afmfiles/hvb_____.afm
file15=/usr/include/afmfiles/hvbo____.afm
file16=/usr/include/afmfiles/hvc_____.afm
file17=/usr/include/afmfiles/hvcb____.afm
file18=/usr/include/afmfiles/hvcbo___.afm
file19=/usr/include/afmfiles/hvcdo___.afm
file20=/usr/include/afmfiles/hvn_____.afm
file21=/usr/include/afmfiles/hvnb____.afm
file22=/usr/include/afmfiles/hvnbo___.afm
file23=/usr/include/afmfiles/hvno____.afm
file24=/usr/include/afmfiles/hvo_____.afm
file25=/usr/include/afmfiles/ncb_____.afm
file26=/usr/include/afmfiles/ncbi____.afm
file27=/usr/include/afmfiles/nci_____.afm
file28=/usr/include/afmfiles/ncr_____.afm
file29=/usr/include/afmfiles/pob_____.afm
file30=/usr/include/afmfiles/pobi____.afm
file31=/usr/include/afmfiles/poi_____.afm
file32=/usr/include/afmfiles/por_____.afm
file33=/usr/include/afmfiles/sy______.afm
file34=/usr/include/afmfiles/tib_____.afm
file35=/usr/include/afmfiles/tibi____.afm
file36=/usr/include/afmfiles/tii_____.afm
file37=/usr/include/afmfiles/tir_____.afm
file38=/usr/include/afmfiles/zcmi____.afm
file39=/usr/include/afmfiles/zd______.afm

4.) Druckerspezifikationen

Es wird eine Datei für Druckerattribute benötigt (ppd-Datei). Normalerweise lässt sich die Datei "genericna.ppd" verwenden, welche ebenfalls auf dem Adobe-FTP zufinden ist. In WINE.CONF wird wiederrum eine neue Zeile angelegt:

[psdrv]
ppdfile=genericna.ppd

Der komplette Pfad zur Datei sollte nicht vergessen werden.

5.) Schnittstellenanpassung

In WINE.CONF gibt es einen Abschnitt, der die paralellen Schnitt definiert und heißt [spooler]. In der Registrierung wurden für jeden WINE-Drucker parallele Schnittstellen angegeben und diese müsse gefakt werden.

Der Standarddrucker verwendet LPT1 und heißt unter Linux lp. D.h. die Zeile für LPT1 sieht folgendermaßen aus:

LPT1:=lpr -P lp

Wurde in der Registrierung wie oben ein zweiter Drucker an LPT3 definiert, der unter Linux die Bezeichnung "lp2" hat, so steht in der Zeile für LPT3...

LPT3:=lpr -P lp2

wird ein anderes Drucksystem verwendet, so sollte nach dem Pipe-Zeichen () der Befehlssyntax des alternativen Drucksystemes verwendet werden.

6.) Drucken aktivieren

Damit WINE den Druckerdienst einschaltet, muß in der Sektion [wine] in wine.conf

Printers=On

gesetzt werden. Startet man nun eine Windowsanwendung und geht auf Druckereinrichtung, sollten die virtuellen Drucker bereits erscheinen. Wenn nicht, ist ein Fehler aufgetreten (dann gibt die Konsolenausgabe von WINE noch genauere Hinweise). In den Druckereigenschaften muß nun noch das Papierformat eingestellt werden und dann sollte man drucken können.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten