Linux Virtual Delivery Agent

Drucken

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

Installation

Der Linux VDA benötigt die Filter cups und foomatic. Die Filter werden im Rahmen der VDA-Installation installiert. Sie können die Filter gemäß Ihrer Distribution auch manuell installieren. Beispiel:

Auf RHEL 7:

sudo yum –y install cups

sudo yum -y install foomatic-filters
<!--NeedCopy-->

Auf RHEL 6:

sudo yum –y install cups

sudo yum -y install foomatic
<!--NeedCopy-->

Konfiguration

Citrix bietet drei universelle Druckertreibertypen: postscript, pcl5 und pcl6. Der universelle Druckertreiber ist unter Umständen nicht mit dem Clientdrucker kompatibel. In diesem Fall bestand in früheren Versionen die einzige Option darin, die Konfigurationsdatei ~/.CtxlpProfile$CLIENT_NAME zu bearbeiten. Ab Version 1906 können Sie stattdessen auch die Richtlinie Druckertreiberzuordnung und -kompatibilität in Citrix Studio konfigurieren.

Konfigurieren der Richtlinie Druckertreiberzuordnung und -kompatibilität in Citrix Studio:

  1. Wählen Sie die Richtlinie Druckertreiberzuordnung und -kompatibilität aus.
  2. Klicken Sie auf Hinzufügen.
  3. Geben Sie unter Treibername den Treibernamen des Clientdruckers ein. Bei Verwendung der Citrix Workspace-App für Linux geben Sie stattdessen den Druckernamen ein.
  4. Wählen Sie Ersetzen durch und geben Sie den absoluten Pfad der Treiberdatei auf dem VDA ein.

    Bild der Richtlinie "Druckertreiberzuordnung und -kompatibilität"

Hinweis:

  • Es werden nur PPD-Treiberdateien unterstützt.
  • Andere Optionen der Richtlinie Druckertreiberzuordnung und -kompatibilität werden nicht unterstützt. Es wird nur Ersetzen durch wirksam.

Verwendung

Sie können aus veröffentlichten Desktops und veröffentlichten Anwendungen drucken. Nur der clientseitige Standarddrucker wird in einer Linux VDA-Sitzung zugeordnet. Die Druckernamen müssen für Desktops und Anwendungen unterschiedlich sein.

  • 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 oder auf einem Anwendungsdrucker über einen veröffentlichten Desktop schlägt fehl.

Problembehandlung

Fehler beim Drucken

Wenn das Drucken nicht ordnungsgemäß funktioniert, sollten Sie den Druckdaemon ctxlpmngt und das CUPs-Framework überprüfen.

Der Druckdaemon ctxlpmngt ist ein pro Sitzung ausgeführter Vorgang, der für die gesamte Sitzungsdauer ausgeführt werden muss. Mit dem folgenden Befehl prüfen Sie, ob der Druckdaemon ausgeführt wird. Wenn der Prozess ctxlpmngt nicht ausgeführt wird, starten Sie ctxlpmngt manuell über eine Befehlszeile.

ps –ef | grep ctxlpmngt
<!--NeedCopy-->

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
<!--NeedCopy-->

Zusätzliche Schritte zum Sammeln von CUPS-Protokollen

Führen Sie die folgenden Befehle aus, um die CUPS-Dienstdatei für das Sammeln von CUPS-Protokollen zu konfigurieren. Andernfalls können CUPS-Protokolle nicht in hdx.logaufgezeichnet werden:

sudo service cups stop

sudo vi /etc/systemd/system/printer.target.wants/cups.service

PrivateTmp=false

sudo service cups start

sudo systemctl daemon-reload
<!--NeedCopy-->

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=
<!--NeedCopy-->

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
    
     <!--NeedCopy-->
    

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

     model=xerox/ph3115.ppd.gz
     <!--NeedCopy-->
    
  • 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-Treiber unter /home/tester/NATIVE_PRINTER_DRIVER.ppd vorhanden.

     ppdpath=/home/tester/NATIVE_PRINTER_DRIVER.ppd
     <!--NeedCopy-->
    
  • Citrix bietet drei universelle Druckertreibertypen: postscript, pcl5 und pcl6. Sie können den Treibertyp gemäß Ihren Druckereigenschaften konfigurieren.

    Wenn der Standarddruckertreibertyp des Client beispielsweise PCL5 ist, definieren Sie drivertype wie folgt:

     drivertype=pcl5
     <!--NeedCopy-->
    

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:

  1. Melden Sie sich bei einer veröffentlichten Desktopsitzung an.
  2. Führen Sie folgenden Befehl aus: vi ~/.CtxlpProfile$CLIENT_NAME.
  3. Fügen Sie das folgende Feld hinzu, um die Spooldatei auf dem Linux VDA zu speichern:

    deletespoolfile=no
    <!--NeedCopy-->
    
  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 mit einem anderen Druckertreiber.

  8. Wechseln Sie den zugeordneten Drucker, um einen anderen Druckertreiber zu verwenden. Im folgenden Beispiel wird beispielsweise der PostScript-Clientdrucker verwendet:

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

    2. Öffnen Sie das Druckverwaltungsportal:

      localhost:631
      <!--NeedCopy-->
      
    3. Wählen Sie den zugeordneten Drucker CitrixUniversalPrinter:$ClientName:app/dsk$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 in den Feldern Make und Model einen anderen Druckertreiber als den Citrix UPD-Treiber aus. Wenn beispielsweise der virtuelle CUPS-PDF-Drucker installiert ist, wählen Sie den Druckertreiber “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 den neu ausgewählten Treiber 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>
<!--NeedCopy-->
Drucken