Impresión

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

Instalación

Linux VDA requiere los filtros cups y foomatic. Ejecute los siguientes comandos en función de la distribución de Linux:

Compatibilidad de la impresión con RHEL 7:

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

Compatibilidad de la impresión con RHEL 6:

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

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. Se deben tener en cuenta las siguientes cuestiones:

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

Solución de problemas

No se puede imprimir

Hay varios elementos a comprobar cuando la impresión no funciona correctamente. El demonio de impresión es un proceso que se ejecuta para cada sesión y debe ejecutarse durante toda la sesión. Compruebe que el demonio de impresión se esté ejecutando.

ps –ef | grep ctxlpmngt

Si el proceso ctxlpmngt no se está ejecutando, inicie ctxlpmngt manualmente desde una línea de comandos. Si la impresión sigue sin funcionar, compruebe el marco CUPS. El servicio ctxcups administra las impresoras y se comunica con el marco Linux CUPS. Este es un proceso único por máquina y se puede comprobar con:

service ctxcups status

Registro adicional al imprimir CUPS

Al ser un componente de Linux VDA, el método para obtener el registro de un componente de impresión es similar al de los demás componentes.

Para RHEL, se necesitan pasos adicionales para configurar el archivo del servicio de CUPS. De lo contrario, algunos registros no se capturarán 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 es solo para recopilar el registro completo de impresión cuando surja un problema. Por regla general, esta configuración no se recomienda 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 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 si no hay disponible ningún controlador nativo de impresora.

Por ejemplo, si el tipo de controlador de la impresora predeterminada del cliente es PCL5:

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:

Para identificar este problema:

  1. Inicie sesión en el escritorio de la sesión ICA.
  2. vi ~/.CtxlProfile$CLIENT_NAME
  3. Agregue el siguiente campo al archivo de grupo guardado en el 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 usando la impresora del cliente. Una vez completado este paso, pruebe con el otro controlador de la impresora.

  8. Para cambiar la impresora asignada a un controlador externo de impresora, use la impresora cliente 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/dek$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 la página “Make and Model”, elija otro controlador PostScript en lugar del controlador de impresora universal Citrix (por ejemplo, el controlador universal de Citrix PostScript). Por ejemplo, si está instalada la impresora virtual CUPS-PDF, puede seleccionar la impresora genérica CUPS-PDF. Guarde la modificación.

    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 este controlador de terceros.

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>

Impresión