Siu Guarani - Problemas para descargar el PDF desde el autogestion

Posible solución: Utilizar librería siu-toba/jasper en la versión 5.6.1.2:

Pasos para Guaraní Gestión (los pasos 1, 2 y 3 hacer solo en versiones inferiores a la 3.20.3):

  1. Comentar/eliminar las lineas donde dice static::ajustarJasperPhp74(); en src/SIU/Guarani/Scripts/Composer.php (también la función ajustarJasperPhp74).
  2. En composer.json cambiar a “siu-toba/jasper”: “5.6.1.2”, ej:
    "require": {
	        "php": "7.4.*",
	        "siu-toba/framework": "~3.3",
	        "siu/instalador": "^1.9",
	        "siu-toba/jasper": "5.6.1.2", 
  1. Ejecutar composer update siu-toba/jasper, ej salida del comando:
Lock file operations: 0 installs, 1 update, 0 removals - Downgrading siu-toba/jasper (dev-master => v5.6.1.2) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 1 update, 0 removals - Downloading siu-toba/jasper (v5.6.1.2) - Downgrading siu-toba/jasper (dev-master => v5.6.1.2): Extracting archive
  1. Configurar la directiva java.pipe_dir en /etc/php/7.4/apache2/php.ini apuntado un directorio con permisos de escritura y lectura.
  2. Si configurando la directiva java.pipe_dir no funciona, entonces dar permisos a la carpeta /dev/shm (yo le di chmod 7777 -R /dev/shm).
  3. Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
  4. Reiniciar Apache.
  5. Reinicia Jasper.

Pasos para Guaraní Autogestión (los pasos 1, 2 y 3 hacer solo en versiones inferiores a la 3.20.3):

  1. Comentar/eliminar las lineas donde dice static::ajustarJasperPhp74($vendorDir); en src/siu/Install.php (también la función ajustarJasperPhp74).
  2. En composer.json agregar “siu-toba/jasper”: “5.6.1.2” y en composer.lock cambiar donde diga “dev-master” a “5.6.1.2” en lo que respecta a la versión de siu-toba/jasper, ej:

composer.json:

  "require": {
    "php": "7.4.*",
    "siu/chulupi-framework": "2.4.*",
    "siu/arai-cli": "3.0.0",
    "siu-toba/jasper": "5.6.1.2",

composer.lock:

    "name": "siu-toba/jasper",
    "version": "v5.6.1.2",
    "siu-toba/jasper": "5.6.1.2",
  1. Ejecutar composer update siu-toba/jasper, ej salida del comando:
Package operations: 0 installs, 1 update, 0 removals - Downgrading siu-toba/jasper (dev-master => v5.6.1.2): Extracting archive
  1. Configurar la directiva java.pipe_dir en /etc/php/7.4/apache2/php.ini apuntado un directorio con permisos de escritura y lectura.
  2. Si configurando la directiva java.pipe_dir no funciona, entonces dar permisos a la carpeta /dev/shm (yo le di chmod 7777 -R /dev/shm).
  3. Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
  4. Reiniciar Apache.
  5. Reinicia Jasper.

Luego dos instancias de Jasper en diferentes puertos, una para Gestión y otra para Autogestión, ej:

Gestión:

java -Duser.language=es -Duser.country=AR -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5 /tmp/jasper.log &>/dev/null &

Autogestión:

java -Duser.language=es -Duser.country=AR -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/autogestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8082 5 /tmp/jasper.log &>/dev/null &

Aquí pueden ver como se configuran.

saludos.
4