Imprimir

En este artículo, se ofrecen los procedimientos recomendados de impresión.  

Instalación

Linux VDA requiere los filtros cups y foomatic. Los filtros se instalan al instalar el VDA. También puede instalar los filtros manualmente en función de la distribución. Por ejemplo:

En RHEL 7:

sudo yum –y install cups

sudo yum -y install foomatic-filters

En RHEL 6:

sudo yum –y install cups

sudo yum -y install foomatic

Configuración

Existen tres tipos de controlador de impresora universal suministrados por Citrix (postscript, pcl5 y pcl6). Sin embargo, es posible que el controlador de impresora universal no sea compatible con la impresora del cliente. En este caso, la única opción posible en versiones anteriores era modificar el archivo de configuración ~/.CtxlpProfile$CLIENT_NAME. A partir de la versión 1906, en su lugar, puede configurar la directiva Asignación y compatibilidad de controladores de impresora en Citrix Studio.

Para configurar la directiva Asignación y compatibilidad de controladores de impresora en Citrix Studio.

  1. Seleccione la directiva Asignación y compatibilidad de controladores de impresora.
  2. Haga clic en Agregar.
  3. Introduzca el nombre del controlador de la impresora del cliente. Si utiliza la aplicación Citrix Workspace para Linux, introduzca el nombre de la impresora.
  4. Elija Reemplazar por y escriba la ruta absoluta del archivo de controlador en el VDA.

    imagen de la directiva Asignación y compatibilidad de controladores de impresora

Nota:

  • Solo se admiten archivos de controlador PPD.
  • No se admiten otras opciones de la directiva Asignación y compatibilidad de controladores de impresora. Solamente Reemplazar por surte efecto.

Uso

Puede imprimir desde escritorios publicados y aplicaciones publicadas. En una sesión de Linux VDA, solo se asigna la impresora de cliente predeterminada. El nombre de la impresora debe ser diferente entre los escritorios y las aplicaciones.

  • Para escritorios publicados:
    CitrixUniversalPrinter:$CLIENT_NAME:dsk$SESSION_ID
  • Para aplicaciones publicadas:
    CitrixUniversalPrinter:$CLIENT_NAME:app$SESSION_ID

Nota:

Si el mismo usuario abre un escritorio publicado y una aplicación publicada, ambas impresoras estarán disponibles para la sesión. No se puede imprimir en una impresora de escritorio cuando se está en una sesión de aplicación publicada; tampoco se puede imprimir en una impresora de aplicación cuando se está en un escritorio publicado.

Solucionar problemas

No se puede imprimir

Cuando la impresión no funcione correctamente, compruebe el demonio de impresión, ctxlpmngt, y el marco CUPS.

El demonio de impresión, ctxlpmngt, es un proceso que se ejecuta para cada sesión y debe ejecutarse durante toda la sesión. Ejecute el siguiente comando para comprobar que el demonio de impresión se está ejecutando. Si ctxlpmngt no se está ejecutando, inicie ctxlpmngt manualmente desde una línea de comandos.

ps –ef | grep ctxlpmngt

Si la impresión sigue sin funcionar, compruebe el marco CUPS. El servicio ctxcups se usa para la administración de impresoras y se comunica con el marco CUPS de Linux. Es un proceso único por máquina y se puede comprobar mediante el siguiente comando:

service ctxcups status

Pasos adicionales para recopilar registros de CUPS

Para recopilar registros de CUPS, ejecute los siguientes comandos para configurar el archivo de servicio de CUPS. De lo contrario, los registros de CUPS no se pueden registrar en 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

Nota:

Esta configuración solo sirve para recopilar el registro completo de impresión cuando surja algún problema. En circunstancias normales, no se recomienda esta configuración porque afecta negativamente a la seguridad de CUPS.

La salida de impresión no se ha descifrado correctamente

Las impresiones ilegibles pueden deberse a un controlador de impresora incompatible. Se puede definir una configuración de controladores por usuario si se modifica el archivo de configuración ~/.CtxlpProfile$CLIENT_NAME:

[DEFAULT_PRINTER]

printername=

model=

ppdpath=

drivertype=

Importante:

El campo printername contiene el nombre de la impresora actual predeterminada del cliente. Es un valor de solo lectura. No debe modificarlo.

Los campos ppdpath, model y drivertype no se pueden establecer a la vez, ya que solo uno tiene efecto en la impresora asignada.

  • Si el controlador de impresora universal no es compatible con la impresora del cliente, configure el modelo del controlador de la impresora nativa con la opción model=. Puede buscar el nombre del modelo actual de la impresora con el comando 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
    
    

    A continuación, puede configurar el modelo para que coincida con la impresora:

     model=xerox/ph3115.ppd.gz
    
  • Si el controlador de impresora universal no es compatible con la impresora cliente, configure la ruta al archivo PPD del controlador nativo de la impresora. El valor de ppdpath es la ruta absoluta al archivo del controlador nativo de la impresora.

    Por ejemplo, hay un controlador PPD en /home/tester/NATIVE_PRINTER_DRIVER.ppd:

     ppdpath=/home/tester/NATIVE_PRINTER_DRIVER.ppd
    
  • Existen tres tipos de controlador de impresora universal suministrados por Citrix (postscript, pcl5 y pcl6). Puede configurar el tipo de controlador en función de las propiedades de la impresora.

    Por ejemplo, si el tipo de controlador de impresora predeterminado del cliente es PCL5, establezca drivertype en:

     drivertype=pcl5
    

El tamaño de la salida es cero

Pruebe diferentes tipos de impresoras. Asimismo, pruebe una impresora virtual (como CutePDF y PDFCreator) para averiguar si el problema está relacionado con el controlador de la impresora.

El trabajo de impresión depende del controlador de impresora establecido en la impresora predeterminada del cliente. Es importante identificar el tipo de controlador activo actual. Si la impresora cliente usa un controlador PCL5, pero Linux VDA elige un controlador PostScript, se puede producir un problema.

Si el tipo de controlador de la impresora es correcto, puede identificar el problema siguiendo estos pasos:

  1. Inicie sesión en una sesión de escritorio publicada.
  2. Ejecute el comando vi ~/.CtxlpProfile$CLIENT_NAME.
  3. Agregue el siguiente campo al archivo de cola de impresión guardado en Linux VDA:

    deletespoolfile=no
    
  4. Cierre la sesión y vuelva a iniciarla para cargar los cambios de configuración.

  5. Imprima el documento para reproducir el problema. Después de imprimir, habrá un archivo de cola de impresión guardado en /var/spool/cups-ctx/$logon_user/$spool_file.

  6. Compruebe si la cola de impresión está vacía. Un archivo de cola de impresión vacío representa un problema. Póngase en contacto con la asistencia de Citrix (y facilite el registro de impresión) para obtener más información.

  7. Si la cola de impresión no es cero, copie el archivo al cliente. El archivo de cola de impresión depende del tipo de controlador de impresora establecido en la impresora predeterminada del cliente. Si el controlador de la impresora asignada (nativa) es PostScript, el archivo de cola de impresión se puede abrir directamente en el sistema operativo Linux. Compruebe que el contenido sea correcto.

    Si el archivo de cola de impresión es PCL o si el sistema operativo del cliente es Windows, copie el archivo de cola de impresión al cliente e imprímalo en la impresora del cliente con otro controlador de impresora.

  8. Cambie la impresora asignada para utilizar otro controlador de impresora. En el ejemplo siguiente se utiliza la impresora del cliente de PostScript como ejemplo:

    1. Inicie sesión en una sesión activa y abra un explorador en el escritorio del cliente.

    2. Abra el portal de administración de impresión:

      localhost:631
      
    3. Elija la impresora asignada CitrixUniversalPrinter:$ClientName:app/dsk$SESSION_ID y Modify Printer. Esta operación requiere privilegios de administrador.

    4. Conserve la conexión cups-ctx y, a continuación, haga clic en “Continue” para modificar el controlador de la impresora.

    5. En los campos Make y Model, elija otro controlador de impresora del controlador UPD de Citrix. Por ejemplo, si está instalada la impresora virtual CUPS-PDF, puede seleccionar el controlador de impresora genérica CUPS-PDF. Guarde el cambio.

    6. Si este proceso se realiza correctamente, configure la ruta al archivo PPD del controlador en .CtxlpProfile$CLIENT_NAME para permitir que la impresora asignada use el controlador recién seleccionado.

Problemas conocidos

Se han identificado los siguientes problemas al imprimir con Linux VDA:

El controlador CTXPS no es compatible con algunas impresoras PLC

Si se dañan las impresiones, establezca el controlador de impresora al controlador nativo que haya proporcionado el fabricante.

Impresión lenta de documentos grandes

Al imprimir un documento grande en una impresora local del cliente, el archivo que debe imprimirse se transfiere a través de una conexión de servidor. En conexiones lentas, esta transferencia puede tardar mucho tiempo.

La impresora y las notificaciones de trabajos de impresión aparecen en otras sesiones

Linux no tiene el mismo concepto de sesión que Windows. Por lo tanto, todos los usuarios reciben notificaciones de todo el sistema. Para inhabilitar esas notificaciones, debe modificar el archivo de configuración CUPS: /etc/cups/cupsd.conf.

En el archivo, busque el nombre de la directiva actual configurada:

DefaultPolicy default

Si el nombre de la directiva es default, agregue las siguientes líneas al bloque XML de la directiva predeterminada:

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