Drucken

Dieser Artikel enthält Informationen zu bewährten Druckmethoden.  

Installation

Der Linux VDA benötigt die Filter cups und foomatic. Führen Sie, je nach Linux-Distribution, die folgenden Befehle aus:

Druckunterstützung für RHEL 7:

sudo yum –y install cups
sudo yum -y install foomatic-filters

Druckunterstützung für RHEL 6:

sudo yum –y install cups
sudo yum -y install foomatic

Verwendung

Sie können aus veröffentlichten Desktops und veröffentlichten Anwendungen drucken. Nur der clientseitige Standarddrucker wird in einer Linux VDA-Sitzung zugeordnet. Der Druckername muss für Desktops und Anwendungen unterschiedlich sein. Beachten Sie Folgendes:

  • Veröffentlichte Desktops:
    CitrixUniversalPrinter:$CLIENT_NAME:dsk$SESSION_ID
  • Veröffentlichte Anwendungen:
    CitrixUniversalPrinter:$CLIENT_NAME:app$SESSION_ID

Hinweis:

Wenn ein Benutzer einen veröffentlichten Desktop und eine veröffentlichte Anwendung öffnet, stehen in der Sitzung beide Drucker zur Verfügung. Das Drucken auf einem Desktopdrucker in einer veröffentlichten Anwendung und auf einem Anwendungsdrucker über einen veröffentlichten Desktop schlägt fehl.

Problembehandlung

Fehler beim Drucken

Sie können verschiedene Elemente überprüfen, wenn der Druckvorgang nicht richtig funktioniert. Der Druck-Daemon ist ein pro Sitzung ausgeführter Vorgang und muss für die gesamte Dauer der Sitzung ausgeführt werden. Prüfen Sie, ob der Druck-Daemon ausgeführt wird.

ps –ef | grep ctxlpmngt

Wenn der Prozess ctxlpmngt nicht ausgeführt wird, starten Sie ctxlpmngt manuell über eine Befehlszeile. Wenn der Druck immer noch nicht funktioniert, überprüfen Sie das CUPS-Framework. Der Dienst ctxcups dient zur Druckerverwaltung und kommuniziert mit dem Linux CUPS-Framework. Es gibt jeweils einen Prozess pro Maschine, der mit folgendem Befehl überprüft werden kann:

service ctxcups status

Zusätzliches Protokoll beim Drucken von CUPS

Als Komponente des Linux-VDA ist die Methode zum Abrufen des Protokolls einer Druckkomponente anderen Komponenten ähnlich.

Bei RHEL sind einige zusätzliche Schritte erforderlich, um die CUPS-Dienstdatei zu konfigurieren. Andernfalls werden einige Protokolle nicht in hdx.lo protokolliert:

sudo service cups stop
sudo vi /etc/systemd/system/printer.target.wants/cups.service
PrivateTmp=false
sudo service cups start
sudo systemctl daemon-reload

Hinweis:

Das vollständige Druckprotokoll sollte mit dieser Konfiguration nur bei einem Problem abgerufen werden. Normalerweise wird diese Konfiguration nicht empfohlen, da sie die CUPS-Sicherheit verletzt.

Druckausgabe ist verzerrt

Eine fehlerhafte Ausgabe kann durch einen nicht kompatiblen Druckertreiber verursacht werden. Pro Benutzer ist eine Treiberkonfiguration verfügbar und kann durch das Bearbeiten der Konfigurationsdatei ~/.CtxlpProfile$CLIENT_NAME konfiguriert werden:

[DEFAULT_PRINTER]
printername=
model=
ppdpath=
drivertype=

Wichtig:

Das Feld printername enthält den Namen des aktuellen Clientstandarddruckers. Dieser Wert ist schreibgeschützt. Bearbeiten Sie ihn nicht.

Nehmen Sie nicht gleichzeitig Eingaben in den Feldern ppdpath, model und drivertype, da nur eines für den zugeordneten Drucker wirksam ist.

Wenn der universelle Druckertreiber mit dem Clientdrucker nicht kompatibel ist, konfigurieren Sie das Modell des nativen Druckertreibers mit der Option model=. Sie finden den aktuellen Modellnamen des Druckers mit dem Befehl lpinfo:

lpinfo –m
…
xerox/ph3115.ppd.gz Xerox Phaser 3115, SpliX V. 2.0.0
xerox/ph3115fr.ppd.gz Xerox Phaser 3115, SpliX V. 2.0.0
xerox/ph3115pt.ppd.gz Xerox Phaser 3115, SpliX V. 2.0.0

Sie können dann das Modell gemäß dem Drucker festlegen:

Model=xerox/ph3115.ppd.gz

Wenn der universelle Druckertreiber nicht mit dem Clientdrucker kompatibel ist, konfigurieren Sie den PPD-Dateipfad für den nativen Druckertreiber. Der Wert von ppdpath ist der absolute Pfad der nativen Druckertreiberdatei.

Beispielsweise ist ein ppd driver unter /home/tester/NATIVE_PRINTER_DRIVER.ppd vorhanden.

ppdpath=/home/tester/NATIVE_PRINTER_DRIVER.ppd

Citrix bietet drei universelle Druckertreibertypen: postscript, pcl5 und pcl6. Sie können den Treibertyp konfigurieren, wenn kein nativer Druckertreiber verfügbar ist.

Beispiel: Der Standarddruckertreibertyp des Client ist PCL5.

drivertype=pcl5

Ausgabegröße ist Null

Versuchen Sie es mit anderen Druckertypen. Versuchen Sie es auch mit einem virtuellen Drucker wie CutePDF oder PDFCreator, um zu ermitteln, ob das Problem mit dem Druckertreiber zusammenhängt.

Der Druckauftrag hängt vom Druckertreiber und dem Standarddrucker des Clients ab. Es ist wichtig, den Typ des aktuell aktiven Treibers zu identifizieren. Wenn der Clientdrucker einen PCL5-Treiber verwendet, der Linux VDA jedoch einen PostScript-Treiber auswählt, kann ein Problem auftreten.

Wenn der Druckertreibertyp richtig ist, können Sie das Problem mit folgenden Schritten finden:

Problemdiagnose

  1. Melden Sie sich bei dem ICA-Sitzungsdesktop an.
  2. vi ~/.CtxlProfile$CLIENT_NAME
  3. Fügen Sie auf dem Linux VDA das folgende Feld hinzu, um die Spooldatei zu speichern:

    deletespoolfile=no
    
  4. Melden Sie sich ab und wieder an, um die Konfigurationsänderungen zu laden.

  5. Drucken Sie das Dokument zum Reproduzieren des Problems. Nach dem Druckvorgang wird unter /var/spool/cups-ctx/$logon_user/$spool_file eine Spooldatei gespeichert.

  6. Prüfen Sie, ob die Spooldatei leer ist. Wenn die Spooldatei NULL ist, liegt ein Problem vor. Wenden Sie sich mit dem Druckprotokoll an den Citrix Support.

  7. Wenn die Spooldatei nicht NULL ist, kopieren Sie die Datei auf den Client. Der Inhalt der Spooldatei hängt vom Druckertreibertyp und dem Standarddrucker des Clients ab. Wenn der zugeordnete (native) Druckertreiber ein PostScript-Treiber ist, kann die Spooldatei direkt im Linux-Betriebssystem geöffnet werden. Prüfen Sie den Inhalt auf Korrektheit.

    Bei einer PCL-Spooldatei oder einem Windows-Betriebssystem auf dem Client kopieren Sie die Spooldatei auf den Client und drucken Sie sie auf dem clientseitigen Drucker. Testen Sie sie anschließend mit dem anderen Druckertreiber.

  8. Zum Wechseln des zugeordneten Druckers zu einem anderen Drittanbieter-Druckertreiber verwenden Sie den PostScript-Clientdrucker als Beispiel:

    1. Melden Sie sich bei einer aktiven Sitzung an und öffnen Sie einen Browser auf dem Clientdesktop.

    2. Öffnen Sie das Druckverwaltungsportal:

      localhost:631
      
    3. Wählen Sie den zugeordneten Drucker CitrixUniversalPrinter:$ClientName:app/dek$SESSION_ID und dann Modify Printer aus. Hierfür sind Administratorprivilegien erforderlich.

    4. Behalten Sie die cups-ctx-Verbindung bei und klicken Sie auf “Continue”, um den Druckertreiber zu ändern.

    5. Wählen Sie auf der Seite “Make and Model” einen anderen PostScript-Treiber als den Citrix UPD-Treiber aus (z. B. Citrix Universal Driver Postscript). Wenn beispielsweise der virtuelle CUPS-PDF-Drucker installiert ist, wählen Sie den Drucker “Generic CUPS-PDF Printer”. Speichern Sie die Änderung.

    6. Wenn der Vorgang Erfolg hat, konfigurieren Sie den PPD-Dateipfad des Treibers in .CtxlpProfile$CLIENT_NAME so, dass der zugeordnete Drucker einen Drittanbietertreiber verwenden darf.

Bekannte Probleme

Die folgenden Probleme beim Drucken mit dem Linux VDA sind bekannt:

CTXPS-Treiber ist mit einigen PLC-Druckern nicht kompatibel

Wenn Sie Druckausgabestörungen bemerken, legen Sie als Druckertreiber den nativen Druckertreiber des Herstellers fest.

Langsame Druckleistung bei großen Dokumenten

Wenn Sie ein großes Dokument auf einem lokalen Clientdrucker drucken, wird das Dokument über die Serververbindung übertragen. Bei langsamen Verbindungen kann die Übertragung sehr lange dauern.

Drucker- und Druckauftragsbenachrichtigungen aus anderen Sitzungen werden angezeigt

Linux hat nicht das gleiche Sitzungskonzept wie das Windows-Betriebssystem. Daher erhalten alle Benutzer systemweite Benachrichtigungen. Durch Ändern der CUPS-Konfigurationsdatei /etc/cups/cupsd.conf können Sie diese Benachrichtigungen deaktivieren.

Suchen Sie den aktuellen, in der Datei konfigurierten Richtliniennamen:

DefaultPolicy default

Wenn der Richtlinienname default lautet, fügen Sie dem XML-Block der Standardrichtlinie die folgenden Zeilen hinzu:

<Policy default>
     # Job/subscription privacy...
     JobPrivateAccess default
     JobPrivateValues default
     SubscriptionPrivateAccess default
     SubscriptionPrivateValues default
     … …
     <Limit Create-Printer-Subscription>
          Require user @OWNER
          Order deny,allow
     </Limit>
     <Limit All>
          Order deny,allow
     </Limit>
</Policy>

Drucken