# Configuración del Print Server

## Introducción

Este manual describe la configuración de los componentes del lado del servidor de la aplicación *GBS Print*.

El procedimiento de configuración debe realizarse solamente después de la etapa de instalación. Para más información, consulte el [Manual de Instalación de GBS Apps](/gbs/es/componentes-web/gbsappssetup.md).

## Configuración

Los pasos para configuración son:

1. [Configure el Tomcat](#configuracao-do-tomcat);
2. [Configure los certificados](#configuracao-de-certificados);
3. [Genere la contraseña cifrada](#criptografia-da-senha-do-banco-de-dados);
4. [Configure otras propiedades en el archivo config.properties](#arquivo-de-configuracao-da-aplicacao);
5. [Instale y configure los sistemas de impresión](#sistemas-de-impressao);
6. [Instale las fuentes](#instalacao-de-fontes);

Todos los pasos están descritos a continuación. Un ejemplo del archivo `config.properties` puede encontrarse en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao).

{% hint style="danger" %}
Todas las líneas deben estar presentes en el archivo de configuración. Comentar o eliminar líneas puede causar comportamientos inesperados. Para información adicional, contacte al Equipo de Soporte de Griaule.
{% endhint %}

### Configuración del Tomcat

Edite el archivo de configuración del Tomcat para configurar los certificados y el puerto que la aplicación usará.

```sh
vi /var/lib/tomcats/print/conf/server.xml
```

Para cambiar el puerto, busque `Connector port=`. Ese es el puerto para operaciones backend.

El puerto predeterminado de GBS Print es `8127`.

### Configuración de Certificados

Para habilitar autenticación SSL, busque `Connector port=` en el archivo `/conf/server.xml`.

Hay varias entradas. Busque la que define un *SSL HTTP/1.1 Connector*. Si es necesario, elimine los delimitadores de comentario `<!--` y `-->`. Luego, ajuste las siguientes configuraciones:

```properties
port="58194"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"
```

El parámetro `port` debe ser el puerto de red deseado para la aplicación.

Cambie la ruta de `keystoreFile` y `truststoreFile` a los valores correctos. Haga lo mismo para `keystorePass` y `truststorePass`.

El parámetro `clientAuth="true"` requerrá autenticación del servidor para el cliente y del cliente para el servidor. Esto significa que el cliente necesitará importar el certificado en el navegador para poder acceder a la aplicación.

{% hint style="warning" %}
Cuando `clientAuth` está definido como `true`, el administrador del sistema debe proporcionar el archivo `certificate.pfx` a los usuarios finales.
{% endhint %}

### Cifrado de la contraseña de la Base de Datos

En el archivo `config.properties`, el parámetro `jdbc.password` es una contraseña cifrada. Para generar la contraseña cifrada, siga los pasos a continuación:

1. Vaya al siguiente directorio:

   ```sh
   cd /var/lib/tomcats/print/webapps/gbs-print-server/WEB-INF/lib
   ```
2. Ejecute el comando:

   ```sh
   java -cp gbs-common-db-<version>.jar com.griaule.commons.util.EncryptUtil <desiredPassword>
   ```
3. La contraseña encriptada aparecerá después del mensaje: *"Encrypted password is:"*

{% hint style="info" %}
Guarde la contraseña cifrada. Será usada en el siguiente paso.
{% endhint %}

### Archivo de Configuración de la Aplicación

Para configurar el archivo, ábralo con:

```sh
vi /var/lib/tomcats/print/conf/config.properties
```

Los cambios más importantes en este archivo son los parámetros `jdbc.url`, `jdbc.username`, `jdbc.password` y `gbds.url`Configurelos de acuerdo con su entorno.

El archivo de configuración completo se muestra en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao).

{% hint style="info" %}
Recuerde reemplazar la contraseña cifrada generada en la sección [Cifrado de la contraseña de la Base de Datos](#criptografia-da-senha-do-banco-de-dados) en este archivo.
{% endhint %}

#### Configuraciones de Print

El último paso es configurar la IP y el puerto de la aplicación que el usuario final irá a acceder. Debe ser la misma IP y puerto configurados en la sección [Configuración del Tomcat](#configuracao-do-tomcat).

```properties
print.ip=<ip>
print.port=<port>
print.protocol=<protocol>
```

{% hint style="warning" %}
Asegúrese de que los parámetros de configuración `print.ip`, `print.port` y `print.protocol` estén correctamente especificados en el archivo `config.properties`. En muchos casos, la IP será la misma para varias aplicaciones. Sin embargo, cada aplicación tendrá un puerto **distinto y único**.
{% endhint %}

{% hint style="warning" %}
Asegúrese de que el parámetro de configuración `resizeFloat=0.3` esté presente en el archivo de configuración (`config.properties`). Determina el porcentaje de compresión de la imagen del documento que se guardará en la base de datos al final del proceso. El valor predeterminado es `0.3` (30% de compresión).
{% endhint %}

### Sistemas de Impresión

#### Instalación de CUPS

El *Common UNIX Printing System (CUPS)* es un sistema de impresión para sistemas operativos basados en UNIX. Permite que un ordenador actúe como un servidor de impresión, recibiendo trabajos de impresión de equipos clientes y enviándolos a la impresora apropiada. Para instalar CUPS, siga los siguientes pasos:

Instale CUPS:

```sh
sudo yum install cups -y
```

Habilite e inicie el servicio CUPS:

```sh
sudo systemctl enable cups
sudo systemctl start cups
```

Entonces, instale la interfaz gráfica para CUPS:

```sh
sudo yum install system-config-printer -y
```

{% hint style="success" %}
Si el comando de instalación falla, intente limpiar la caché de *yum*:

```sh
sudo yum clean all
```

{% endhint %}

#### Configuración de CUPS

Para configurar CUPS, edite el archivo de configuración:

```sh
sudo vim /etc/cups/cupsd.conf
```

Para permitir el acceso de otros equipos al servidor CUPS, cambie la siguiente línea, de:

```properties
Listen localhost:631
```

A:

```properties
Listen 0.0.0.0:631
```

Entonces, para permitir el acceso al servidor, agregue el permiso `Allow from all` a `<Location />`. Para hacer esto, busque las siguientes líneas y cámbielas de la siguiente forma:

```apacheconf
# Restrict access to the server...
<Location />
   Order allow,deny
   Allow from all
</Location>
```

Además, para permitir el acceso a las páginas de administración, agregue el permiso `Allow from all` a `<Location /admin>`. Para hacer esto, busque las siguientes líneas y cámbielas de la siguiente forma:

```apacheconf
# Restrict access to the admin pages...
<Location /admin>
   Order allow,deny
   Allow from all
</Location>
```

Entonces, guarde y cierre el archivo de configuración.

Finalmente, para aplicar los cambios, reinicie el servicio CUPS:

```sh
sudo systemctl restart cups
```

#### Instalación de HPLIP (Controlador de Impresoras HP)

El *HP Linux Imaging and Printing (HPLIP)* es una solución gratuita y de código abierto desarrollada por HP para impresión en Linux usando impresoras HP. Para instalar HPLIP, ejecute:

```sh
sudo yum install hplip -y
```

Entonces, cree un grupo para la administración de impresoras:

```sh
sudo groupadd lpadmin
```

Finalmente, agregue el usuario `root` al grupo `lpadmin`:

```sh
sudo usermod -a -G lpadmin root
```

#### Configuración de Impresoras

Primero, inicie el servicio de búsqueda de impresoras de la red ejecutando:

```sh
sudo systemctl enable cups-browsed.service
sudo systemctl start cups-browsed.service
sudo systemctl status cups-browsed.service
```

A continuación, acceda a la interfaz web de CUPS en `http://<server_ip>:631` usando un navegador.

![](/files/fcd9216b7e65e680f8c8eab194bcef48811ab9e7)

En el menú superior, haga clic en la pestaña `Administration` y luego en el botón Add Printer.

![](/files/8e8b82b30c96706469c1d44666eeed1013f9c5bf)

Si aparece un mensaje diciendo que se necesita una actualización, haga clic en la URL mostrada, luego en el botón Advanced y en `Proceed to https://<server_ip>:631 (unsafe)`.

![](/files/3a4805dd5b8ab1a8cec934d88813050797b880a6)

Al volver a la interfaz web de CUPS, haga clic en el botón Add Printer nuevamente y, si se solicita, inicie sesión con las credenciales de usuario `root` del servidor.

![](/files/4e635354a14ca82d5d1963ec12debf80b1beb590)

En la página **Add Printer**, en la sección **Local Printers**, seleccione `HP Printer (HPLIP)` y haga clic en el botón Continue.

![](/files/469deb215a77856a2c995adf21a352a4c89a10a8)

Luego, en la sección **Connection**, introduzca `socket://<printer_IP>` y haga clic en el botón Continue.

![](/files/e527effe851117ea1bed7f7b81e6f8fccc99e2b7)

Entonces, introduzca un `Name`, `Description` y `Location` para la impresora, siguiendo las instrucciones en la página para cada campo, y haga clic en el botón Continue.

![](/files/12e70a7a9fe23d9ff629bb85057be25fc1270db1)

En la sección **Make**, seleccione el fabricante de la impresora y haga clic en el botón Continue.

![](/files/e4cdd2ca3755d792b5e333bd08456d35e22dc32a)

Luego, en la sección **Model**, seleccione el modelo de la impresora en la lista y haga clic en el botón Add Printer.

![](/files/d6ed625bda036a46159cc3a13f26e28242fa6154)

Luego, verifique las configuraciones predeterminadas de la impresora y asegúrese de que se adapten al entorno.

{% hint style="success" %}
Asegúrese de seleccionar el tamaño de papel correcto en la sección **General / Media Size**.
{% endhint %}

![](/files/cb800ec61fd7f75b63be201835d1e7c283199671)

Finalmente, haga clic en el botón Set Default Options para guardar las configuraciones de la impresora. Si todo funciona como se espera, aparecerá un mensaje indicando que la impresora fue añadida con éxito y será redirigido a la página de la impresora.

![](/files/1b02f2e0b1c9cd9a2e469837941add86184766c0)

#### CUPS PDF (opcional)

CUPS PDF proporciona una manera de imprimir en un archivo PDF. Se recomienda para fines de prueba.

Para instalar CUPS PDF, ejecute:

```sh
sudo yum install cups-pdf -y
```

La ruta predeterminada para guardar los archivos PDF es `/root`. Para cambiar la ruta, edite el archivo de configuración de CUPS PDF:

Entonces, edite el archivo de configuración de CUPS PDF:

```sh
vim /etc/cups/cups-pdf.conf
```

En `Path Settings`, cambie el parámetro `Out <path>` a la ruta deseada.

A continuación, acceda a la interfaz web de CUPS en `http://<server_ip>:631` usando un navegador.

En el menú superior, haga clic en la pestaña `Administration` y luego en el botón Add Printer.

![](/files/8e8b82b30c96706469c1d44666eeed1013f9c5bf)

En la página **Add Printer**, en la sección **Local Printers**, seleccione `CUPS-PDF (Impresora PDF Virtual)` y haga clic en el botón Continue.

![](/files/33737993cb7c8d90010381ac78888fb3efeab9bc)

Entonces, introduzca un `Name`, `Description` y `Location` para la impresora, siguiendo las instrucciones en la página para cada campo, y haga clic en el botón Continue.

![](/files/9991d569014304fc76826d16702fc2a49f22da04)

Luego, en la sección **Or Provide a PPD File**, haga clic en el botón Choose File y seleccione el archivo `Cups-PDF.ppd`. Ese archivo `.ppd` puede encontrarse en el directorio `/etc/cups/ppd/` del servidor donde CUPS PDF está instalado. Luego, haga clic en el botón Add Printer.

![](/files/178b68b26078015f2c13b64a593643c93baeaaf2)

Verifique las configuraciones predeterminadas de la impresora y asegúrese de que se adapten al entorno.

{% hint style="success" %}
Asegúrese de seleccionar el tamaño de papel correcto en la sección **General / Media Size**.
{% endhint %}

![](/files/298c6d1a7ad0769465c0c4211dc8a62cc92fac47)

Finalmente, haga clic en el botón Set Default Options para guardar las configuraciones de la impresora. Si todo funciona como se espera, aparecerá un mensaje indicando que la impresora fue añadida con éxito y será redirigido a la página de la impresora.

![](/files/ec0c328633a9b81af4ba0251d7b24f3141e34541)

### Instalación de Fuentes

La aplicación utiliza tres fuentes que deben ser instaladas: `Arial`, `OCR-B-10 BT` y `Tahoma Bold`.

#### Arial

Primero, verifique si la fuente ya está instalada:

```sh
fc-list | grep arial
```

Si la fuente no está instalada (resultado vacío), descargue la fuente:

```sh
wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
```

A continuación, instálela:

```sh
rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
```

Verifique si la fuente se instaló con éxito:

```sh
fc-list | grep arial
```

Puede entonces eliminar el archivo `.rpm` descargado:

```sh
rm msttcore-fonts-2.0-3.noarch.rpm
```

#### OCR-B-10 BT

Primero, asegúrese de haber iniciado sesión como *root*.

A continuación, verifique si la fuente ya está instalada:

```sh
fc-list | grep ocr
```

Si la fuente no está instalada (resultado vacío), cree un directorio `ocrb` en `/usr/share/fonts/`:

```sh
mkdir /usr/share/fonts/ocrb
```

{% hint style="warning" %}
Para los pasos siguientes, debe tener el archivo `.ttf` de la fuente `OCR-B-10 BT`. Descárguelo de una fuente confiable o cópielo de otra máquina.
{% endhint %}

Transfiera el archivo de la fuente al servidor y muévalo al directorio `/usr/share/fonts/ocrb`.

A continuación, ejecute:

```sh
fc-cache -f /usr/share/fonts/
```

Finalmente, verifique si la fuente se instaló con éxito:

```sh
fc-list | grep ocr
```

#### Tahoma Bold

Primero, asegúrese de haber iniciado sesión como *root*.

A continuación, verifique si la fuente ya está instalada:

```sh
fc-list | grep tahoma
```

El resultado debe incluir `Tahoma:style=Bold`. Si la fuente no está instalada, cree un directorio `tahomabd` en `/usr/share/fonts/`:

```sh
mkdir /usr/share/fonts/tahomabd
```

{% hint style="warning" %}
Para los pasos siguientes, debe tener el archivo `.ttf` de la fuente `Tahoma Bold`. Descárguelo de una fuente confiable o cópielo de otra máquina.
{% endhint %}

Transfiera el archivo de la fuente al servidor y muévalo al directorio `/usr/share/fonts/tahomabd`.

A continuación, ejecute:

```sh
fc-cache -f /usr/share/fonts/
```

Finalmente, verifique si la fuente se instaló con éxito:

```sh
fc-list | grep tahoma
```

El resultado debe incluir `Tahoma:style=Bold`.

## Finalizando las Configuraciones

Tras completar todos los pasos de configuración, vuelva a [Manual de Instalación de GBS Apps - Sección de Configuración](/gbs/es/componentes-web/gbsappssetup.md#configuracoes).

## Ejemplo del Archivo de Configuración

Esta sección muestra un ejemplo del archivo `config.properties`.

{% hint style="warning" %}
Los parámetros `<rdb_ip>`, `<rdb_username>`, `<rdb_encrypted_password>`, `<gbds_ip>`, `<gbds_username>`, `<gbds_password>`, `<ldap_ip>`, `<ldap_username>`, `<ldap_password>`, `<email_password>`, `<print_ip>` y `<print_service_ip>` deben ser reemplazados por los valores correctos.
{% endhint %}

```properties
# ************************************************************
#
#        /$$$$$$$  /$$$$$$$  /$$$$$$ /$$   /$$ /$$$$$$$$
#       | $$__  $$| $$__  $$|_  $$_/| $$$ | $$|__  $$__/
#       | $$  \ $$| $$  \ $$  | $$  | $$$$| $$   | $$
#       | $$$$$$$/| $$$$$$$/  | $$  | $$ $$ $$   | $$
#       | $$____/ | $$__  $$  | $$  | $$  $$$$   | $$
#       | $$      | $$  \ $$  | $$  | $$\  $$$   | $$
#       | $$      | $$  | $$ /$$$$$$| $$ \  $$   | $$
#       |__/      |__/  |__/|______/|__/  \__/   |__/
#
# ************************************************************

# GBS Print Server

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://<rdb_ip>:3306/print
jdbc.username=<rdb_username>
jdbc.password=<rdb_encrypted_password>
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

locale=en_us

gbds.url=http://<gbds_ip>:8085
gbds.user=<gbds_username>
gbds.key=<gbds_password>
gbds.logLevel=INFO
gbds.additionalHeaders={}
gbds.flushDebugRequests=false
gbds.timeout=300
gbds.listExceptions.labels=

gbds.latent.search.url=null
gbds.proxy.url=null
gbds.proxy.port=0

keystore.path=null
keystore.password=null
truststore.path=null
truststore.password=null

same.user.simultaneous.login=true
fingerprint.useSDK=false
image.convert.useJnbis=false
filter.people.pguid=ALL
faceQuality.qtdeMinErrors=2

session.expirationTime.server=8h
session.expirationTime.web=8h

notification.last.timestamp=15

ldap.url=ldap://<ldap_ip>:389
ldap.user=<ldap_username>
ldap.password=<ldap_password>

codeValidTime=10
deviceTime=6

email.host=smtp.gmail.com
email.host.port=587
email.password=<email_password>
email.from=bravonotifier@gmail.com
email.python.path=python
email.use.script.python=true

# Print back on front/back layouts
ci.printBack=true

# Timeout in seconds to force a print job even if queue has not enough cis to print
queue.timeout=-1

# Station
station.initials=SEDE

batchSizes=FOUR_CI:8

defaultStation=SEDE
forceDefaultStationPrinting=true
print.service.on=true
print.mirror.page=true

#printService.url=http://<print_service_ip>:8090/gbs-print-service/service/
printService.logLevel=DEBUG
printService.timeout=300

#autoPrint=FOUR_CI:true,TWO_CF:false,ONE_CI:true,TWO_CA:false,TWO_CC:false,ONE_CS:false

print.ip=<print_ip>
print.port=8127
print.protocol=http

resizeFloat=0.3
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/gbs/es/componentes-web/printconfig.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
