Fuente en un jasper

Hola!
Necesitamos usar un jasper que en algunos textFields tiene como fuente “Font Name = Garamond”, el tema es que al abrirlo desde guarani gestión (toba_vista_jasperreports) no toma la fuente. ¿Qué nos estaría faltando instalar?

saludos,
Flavia

hola!
Esta fuente esta instalada en los servidores de gestión ? ¿en un entorno local funciona ?
muchas gracias
saludos

Hola Jesi!
Solo estamos probando en un entorno local y tenemos intalada la font Garamond.ttf en el SO (Ubuntu 20.4).
Saludos!

Buenos días Flavia.

A nosotros nos paso lo mismo y lo solucionamos de la siguiente manera:

  • ir al archivo guarani/vendor/siu-toba/jasper/JasperReports/jasperreports-fonts-5.6.0.jar
  • abrir el archivo jar
  • modificar el archivo net/sf/jasperreports/fonts/fonts.xml
  • agregar la fuente con estas lineas:
<fontFamily name="Palatino">
		<normal>net/sf/jasperreports/fonts/dejavu/Palatino.ttf</normal>
		<bold>net/sf/jasperreports/fonts/dejavu/Palatino.ttf</bold>
		<italic>net/sf/jasperreports/fonts/dejavu/Palatino.ttf</italic>
		<boldItalic>net/sf/jasperreports/fonts/dejavu/Palatino.ttf</boldItalic>
		<pdfEncoding>Identity-H</pdfEncoding>
		<pdfEmbedded>true</pdfEmbedded>
		<exportFonts>
			<export key="net.sf.jasperreports.html">'Palatino', 'Times New Roman', Times, serif</export>
			<export key="net.sf.jasperreports.xhtml">'Palatino', 'Times New Roman', Times, serif</export>
		</exportFonts>
	</fontFamily>
  • agregar el archivo .ttf de la fuente a agregar en: net/sf/jasperreports/fonts/dejavu
  • Reiniciar Jasper Reports

Saludos.

Muchas gracias Pedro!
Pudimos instalarla siguiendo esos pasos.

Saludos!

Buenos días, tenemos un caso similar con nuestro guarani.
La solución es factible, pero si volvemos a cambiar el vendor o hacer una instalación en otro server esto lo perderíamos.
Como podríamos hacer algo más limpio para no tener que tocar siempre el vendor?

Saludos

Hola @joseMarino

Podes hacer lo siguiente:

Gestión:

composer.json:

    "autoload": {
        "psr-4": {
            "": "src/",
            "SIU\\Guarani\\php\\":"php/",
            "PERS\\Guarani\\php\\":"personalizacion/php/"
        }
    },
    "scripts": {
        "post-install-cmd": [
            "composer run-script post-install-cmd -d ./vendor/siu-toba/framework/",
            "SIU\\Guarani\\Scripts\\Composer::postInstallCmd",
            "PERS\\Guarani\\php\\Composer::postInstallCmd"
        ],
        "post-update-cmd": [
            "composer run-script post-install-cmd -d ./vendor/siu-toba/framework/",
            "SIU\\Guarani\\Scripts\\Composer::postUpdateCmd",
            "PERS\\Guarani\\php\\Composer::postUpdateCmd"
        ]
    },

Luego agregas el archivo personalizacion/php/Composer.php:

<?php

namespace PERS\Guarani\php;

use Composer\Script\Event;

class Composer
{

	protected static $proyectoPath = __DIR__ . "/../..";

	public static function postInstallCmd(Event $event)
	{
		// Ventana para ejecutar scripts personalizados luego de ejecutar 'composer install'.
	}

	public static function postUpdateCmd(Event $event)
	{
		// Ventana para ejecutar scripts personalizados luego de ejecutar 'composer update'.
	}

}

Luego podes invocar funciones como se hace en src/SIU/Guarani/Scripts/Composer.php, las mismas se ejecutan luego de composer install o composer update.

Autogestión y Preinscripción:

composer.json:

  "scripts": {
        "post-install-cmd": [
            "siu\\Composer::postInstallCmd",
            "pers\\Composer::postInstallCmd"
        ],
        "post-update-cmd": [
            "siu\\Composer::postUpdateCmd",
            "pers\\Composer::postUpdateCmd"
        ]
    },

  "autoload": {
    "exclude-from-classmap": [
      "/src/siu/www/", 
      "/src/siu/modelo_g3/", 
      "/src/siu/var/", 
      "/src/siu/operaciones/_comun/operaciones/reporte/template_reporte/"
    ],
    "psr-4": {
      "siu\\": "src/siu/",
      "pers\\": "src/pers/"
    }
  },

Luego agregas el archivo src/pers/Composer.php:

<?php

namespace pers;

use Composer\Script\Event;

class Composer
{
	public static function postInstallCmd(Event $event)
	{
		// Ventana para ejecutar scripts personalizados luego de ejecutar 'composer install'.
	}

	public static function postUpdateCmd(Event $event)
	{
		// Ventana para ejecutar scripts personalizados luego de ejecutar 'composer update'.
	}
}

Luego podes invocar funciones como se hace en src/siu/Composer.php, las mismas se ejecutan luego de composer install o composer update.

Saludos.