You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2024-08-28 19:34:26

Greis Bonilla
Member
Registered: 2024-08-28
Posts: 3

Generar PDFs personalizados

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.

pdf.png

pdf-generado.png

Last edited by Greis Bonilla (2024-08-29 15:46:42)

Offline

#2 2024-10-09 19:12:06

D3v14n
Member
Registered: 2024-10-09
Posts: 1

Re: Generar PDFs personalizados

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

#3 2024-10-10 13:15:03

nikolaidys73
Member
From: Rafaela - Santa Fe- Argentina
Registered: 2024-01-15
Posts: 179

Re: Generar PDFs personalizados

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

Board footer

Powered by FluxBB