Imprimer

Cet article contient des informations sur les meilleures pratiques de l’impression.  

Installation

Linux VDA requiert les filtres cups et foomatic. Les filtres sont installés lorsque vous installez le VDA. Vous pouvez également installer les filtres manuellement en fonction de la distribution. Par exemple :

Sur RHEL 7 :

sudo yum –y install cups

sudo yum -y install foomatic-filters

Sur RHEL 6 :

sudo yum –y install cups

sudo yum -y install foomatic

Configuration

Il existe trois types de pilote d’imprimante universel fournis par Citrix (postscript, pcl5 et pcl6). Toutefois, le pilote d’imprimante universel peut ne pas être compatible avec votre imprimante cliente. Dans ce cas, la seule option dans les versions précédentes était de modifier le fichier de configuration ~/.CtxlpProfile$CLIENT_NAME. À partir de la version 1906, vous pouvez choisir de configurer la stratégie Mappage et compatibilité du pilote d’imprimante dans Citrix Studio.

Pour configurer la stratégie Mappage et compatibilité du pilote d’imprimante dans Citrix Studio, procédez comme suit :

  1. Sélectionnez la stratégie Mappage et compatibilité du pilote d’imprimante.
  2. Cliquez sur Ajouter.
  3. Dans le champ Nom du pilote, spécifiez le nom du pilote de l’imprimante cliente. Si vous utilisez l’application Citrix Workspace pour Linux, spécifiez plutôt le nom de l’imprimante.
  4. Choisissez Remplacer par et entrez le chemin d’accès absolu du fichier du pilote sur le VDA.

    Image de la stratégie Mappage et compatibilité du pilote d'imprimante

Remarque :

  • Seuls les fichiers de pilote ppd sont pris en charge.
  • Les autres options de la stratégie Mappage et compatibilité du pilote d’imprimante ne sont pas prises en charge. Seule l’option Remplacer par prend effet.

Utilisation

Vous pouvez imprimer à partir d’applications et de bureaux publiés. Seule l’imprimante par défaut côté client est mappée vers une session Linux VDA. Les noms d’imprimante doivent être différents pour les bureaux et les applications.

  • Pour les bureaux publiés :
    CitrixUniversalPrinter:$CLIENT_NAME:dsk$SESSION_ID
  • Pour les applications publiées :
    CitrixUniversalPrinter:$CLIENT_NAME:app$SESSION_ID

Remarque :

Si le même utilisateur ouvre un bureau publié et une application publiée, les deux imprimantes sont disponibles pour la session. L’impression vers une imprimante de bureau dans une session d’application publiée ou l’impression vers une imprimante d’application dans un bureau publié échoue.

Résolution des problèmes

Impossible d’imprimer

Lorsque l’impression ne fonctionne pas correctement, vérifiez le démon d’impression, ctxlpmngtet l’infrastructure CUPS.

Le démon d’impression, ctxlpmngt, est un processus par session et doit être en cours d’exécution pour la durée de la session. Exécutez la commande suivante pour vérifier que le démon d’impression est en cours d’exécution. Si le processus ctxlpmngt n’est pas exécuté, démarrez manuellement ctxlpmngt à partir d’une ligne de commande.

ps –ef | grep ctxlpmngt

Si l’impression ne fonctionne toujours pas, vérifiez l’infrastructure CUPS. Le service ctxcups est destiné à la gestion d’imprimantes et communique avec l’infrastructure Linux CUPS. Il s’agit d’un processus unique par machine qui peut être vérifié en exécutant la commande suivante :

service ctxcups status

Étapes supplémentaires pour la collecte de journaux CUPS

Pour collecter les journaux CUPS, exécutez les commandes suivantes pour configurer le fichier de service CUPS. Sinon, les journaux CUPS ne peuvent pas être enregistrés dans hdx.log :

sudo service cups stop

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

PrivateTmp=false

sudo service cups start

sudo systemctl daemon-reload

Remarque :

Cette configuration sert uniquement à collecter le journal d’impression complet lorsqu’un problème survient. En général, cette configuration n’est pas recommandée car cette opération enfreint la sécurité CUPS.

L’impression est illisible

Un pilote d’imprimante incompatible peut causer une impression illisible. Une configuration pilote par utilisateur est disponible et peut être configurée en modifiant le fichier de configuration ~/.CtxlpProfile$CLIENT_NAME :

[DEFAULT_PRINTER]

printername=

model=

ppdpath=

drivertype=

Important :

le champ printername contient le nom de l’imprimante par défaut actuelle côté client. Il s’agit d’une valeur en lecture seule. Ne la modifiez pas.

Les champs ppdpath, model et drivertype ne peuvent pas être définis en même temps car un seul est appliqué pour l’imprimante mappée.

  • Si le pilote d’imprimante universel n’est pas compatible avec l’imprimante cliente, configurez le modèle du pilote d’imprimante natif avec l’option model=. Vous pouvez trouver le nom du modèle actuel de l’imprimante avec la commande 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
    
    

    Vous pouvez ensuite définir le modèle pour qu’il corresponde à l’imprimante :

     model=xerox/ph3115.ppd.gz
    
  • Si le pilote d’imprimante universel n’est pas compatible avec l’imprimante cliente, configurez le chemin de fichier ppd du pilote d’imprimante natif. La valeur de ppdpath est le chemin d’accès absolu du fichier du pilote d’imprimante natif.

    Par exemple, il existe un pilote ppd sous /home/tester/NATIVE_PRINTER_DRIVER.ppd :

     ppdpath=/home/tester/NATIVE_PRINTER_DRIVER.ppd
    
  • Il existe trois types de pilote d’imprimante universel fournis par Citrix (postscript, pcl5 et pcl6). Vous pouvez configurer le type de pilote en fonction des propriétés de votre imprimante.

    Par exemple, si le pilote d’imprimante par défaut est de type PCL5, définissez drivertype sur :

     drivertype=pcl5
    

La taille de sortie est définie sur zéro

Essayez différents types d’imprimantes. Essayez également avec une imprimante virtuelle comme CutePDF et PDFCreator pour savoir si ce problème est lié au pilote d’imprimante.

La tâche d’impression dépend du pilote de l’imprimante par défaut du client. Il est important d’identifier le type de pilote actif. Si l’imprimante cliente utilise un pilote PCL5 mais que le VDA Linux choisit un pilote Postscript, un problème peut survenir.

Si le type de pilote d’imprimante est correct, vous pouvez identifier le problème en suivant les étapes suivantes :

  1. Connectez-vous à une session de bureau publiée.
  2. Exécutez la commande vi ~/.CtxlpProfile$CLIENT_NAME.
  3. Ajoutez le champ suivant pour enregistrer fichier de spouleur sur le VDA Linux :

    deletespoolfile=no
    
  4. Fermez, puis rouvrez la session pour charger les modifications apportées à la configuration.

  5. Imprimez le document pour reproduire le problème. Après l’impression, un fichier de spouleur est enregistré sous /var/spool/cups-ctx/$logon_user/$spool_file.

  6. Vérifiez si le fichier de spouleur est vide. Si la taille du fichier de spouleur est zéro, ceci indique un problème. Contactez le support Citrix (et fournissez le journal d’impression) pour une assistance supplémentaire.

  7. Si la taille du fichier de spouleur n’est pas zéro, copiez le fichier sur le client. Le contenu du fichier de spouleur dépend du type de pilote de l’imprimante par défaut du client. Si le pilote (natif) de l’imprimante mappée est postscript, le fichier de spouleur peut être ouvert directement dans le système d’exploitation Linux. Vérifiez si le contenu est correct.

    Si le fichier de spouleur est PCL ou si le système d’exploitation client est Windows, copiez le fichier de spouleur sur le client et imprimez-le à l’aide de l’imprimante côté client en utilisant un autre pilote d’imprimante.

  8. Modifiez l’imprimante mappée pour utiliser un autre pilote d’imprimante. L’exemple suivant utilise l’imprimante client postscript :

    1. Connectez-vous à une session active et ouvrez un navigateur sur le bureau client.

    2. Ouvrez le portail de gestion de l’impression :

      localhost:631
      
    3. Sélectionnez l’imprimante mappée CitrixUniversalPrinter:$ClientName:app/dsk$SESSION_ID et Modify Printer. Cette opération requiert des privilèges d’administrateur.

    4. Conservez la connexion cups-ctx, puis cliquez sur Continue pour modifier le pilote d’imprimante.

    5. Dans les champs Make et Model, choisissez un pilote d’imprimante autre que le pilote UPD Citrix. Par exemple, si l’imprimante virtuelle CUPS-PDF est installée, sélectionnez le pilote Generic CUPS-PDF Printer. Enregistrez la modification.

    6. Si ce processus réussit, configurez le chemin d’accès au fichier ppd du pilote dans .CtxlpProfile$CLIENT_NAME pour autoriser l’imprimante mappée à utiliser le nouveau pilote sélectionné.

Problèmes connus

Les problèmes suivants ont été identifiés lors de l’impression sur le VDA Linux :

Le pilote CTXPS n’est pas compatible avec certaines imprimantes PLC

Si l’impression présente des anomalies, définissez le pilote d’imprimante sur le pilote d’imprimante natif fourni par le fabricant.

Impression lente avec les documents volumineux

Lorsque vous imprimez un document volumineux sur une imprimante cliente locale, le document est transféré sur une connexion serveur. Si la connexion est lente, le transfert risque de durer longtemps.

Notifications d’imprimante et de travaux d’impression d’autres sessions

Le concept de session de Linux n’est pas le même que celui du système d’exploitation Windows. Par conséquent, tous les utilisateurs reçoivent les notifications de l’ensemble du système. Vous pouvez désactiver ces notifications en modifiant le fichier de configuration CUPS : /etc/cups/cupsd.conf.

Recherchez le nom de stratégie configuré dans le fichier.

DefaultPolicy default

Si le nom de la stratégie est default, ajoutez les lignes suivantes dans le bloc XML de la stratégie par défaut :

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