You are not logged in.
Pages: 1
Quisiéramos ubicar un encabezado y un pie de página en el pdf generado del Glpi, actualmente usamos la versión GLPI 10.0.16.
Notamos que Glpi hace uso de la clase TCPDF, pero no logramos encontrar en donde genera ese pdf y poder instanciar esa clase para modificar el código de las funciones Header y Footer del pdf que genera.
Después de generado el pdf, en la Url se ve que manda parámetros al archivo report.dynamic.php, pero aquí no logramos ver cómo personalizar ese encabezado y pie de página.
Ojalá nos podamos ayudar con esto.
Last edited by Greis Bonilla (2024-08-29 15:46:42)
Offline
hola estimado amigo espero ayudarte con tu problema, para poder hacer un encabezado en glpi al generar el pdf tienes que saber primero que glpi utiliza un repositorio Llamado TCPDF por lo general si tienes instalado tu glpi en ubuntu server se ubica:/var/www/html/glpi/vendor/tecnickcom/tcpdf, tambien tienes que saber que el archivo que domina la generacion del pdf se llama GLPIPDF.php y esta ubicado /var/www/html/glpi/src, tienes que descargar el archivo y modificarlo con lo siguiente:
/**
* Page header
*
* @see TCPDF::Header()
**/
public function Header() // phpcs:ignore PSR1.Methods.CamelCapsMethodName
{
// ubicacion del Logo a la izquierda, si quieres que te sirva solo tienes que descomentar las lineas de abajo
// $image_file = '/var/www/html/glpi/vendor/tecnickcom/tcpdf/images/logo.png';
// $this->Image($image_file, 105, 3, 20, '', 'PNG', '', 'C', false, 300, '', false, false, 0, false, false, false);
// ubicacion del logo a la derecha tienes que crear la carpeta images y poner el logo adentro de la carpeta.
$image_file = '/var/www/html/glpi/vendor/tecnickcom/tcpdf/images/logo.png';
$this->Image($image_file, 173, 3, 20, '', 'PNG', '', 'C', false, 300, '', false, false, 0, false, false, false);
$this->Cell(0, 10, 'MI EMPRESA', 0, 1, 'C', 0, '', 0, false, 'M', 'M');
$this->Cell(0, 15, 'MI SEGUNDO ENCABEZADO', 0, false, 'C', 0, '', 0, false, 'M', 'M');
// Title
$this->Cell(0, $this->config['margin_bottom'], $this->title, 0, false, 'C', 0, '', 0, false, 'M', 'M');
}
/**
* Page footer Pie de pagina
*
* @see TCPDF::Footer()
**/
public function Footer() // phpcs:ignore PSR1.Methods.CamelCapsMethodName
{
// Posición a 15 mm desde abajo
$this->SetY(-$this->config['margin_bottom']);
$text = sprintf(" Aqui tu footer personalizado - %s", Html::convDate(date("Y-m-d")));
if ($this->total_count != null) {
$text .= " - " . sprintf(_n('%s item', '%s items', $this->total_count), $this->total_count);
}
$text .= sprintf(" - %s/%s", $this->getAliasNumPage(), $this->getAliasNbPages());
// Page number ubicacion de numero de pagina
$this->Cell(0, $this->config['margin_footer'], $text, 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
un encabezado y footer basico personalizado espero te sea util. recuerda que este archivo es una clase extendida del TCPDF : class GLPIPDF extends TCPDF.
Offline
Una consulta, este archivo, en caso de que yo use form creator que me trae todas las preguntas en un solo campo en los pdf, se podra utilizar para dividirlos y que los traiga en campos distintos? Seria darle formato de celdas a los campos de distintos formularios? Entiendo que seria algo complejo si los formularios son varios no?
Version GLPI: 10.0.16 -
Plugins :Fields aditional 1.21.9 - Alerts 1.12.2 - GLPI Inventory 1.3.4 - Escalation 2.9.4 - Data Inyection 2.13.4 - Metabase - 1.3.3 - Ticketfilter 1.3.2 - Timeline of tickets -10.0+1.2 - YAGP 2.3.1 - Gapp Essentials 2.3.0 - Formcreator 2.13.9
Server :Ubuntu 22.04 LTS
Offline
Pages: 1