PHP - Liberia TCPDF

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Liberia TCPDF

Publicado por Andres (5 intervenciones) el 29/01/2019 17:55:37
Estoy utilizando la libreria de generar pdf - "TCPDF" y tengo textos con tildes, pero no me los muestra aparecen siempre un "?" que podria hacer?


este es mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//ocultar linea superior
$pdf->setPrintHeader(false);
//establecer margin por defecto
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
 
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'tcpdf/examples/lang/spa.php')) {
    require_once(dirname(__FILE__).'tcpdf/examples/lang/spa.php');
    $pdf->setLanguageArray($l);
}
//tipografía
$pdf->SetFont('dejavusans', '', 10);
 
$pdf->AddPage();
//Agregar imagen lado superior izquierda
$pdf->Image('../img/logo-institucional-pdf.png',120, 15, 65, 20);
//Agregar celdas
$pdf->Cell(0,10,"",0,1);
// create some HTML content
$html = '<table  border="0" style="text-align:left; ">
            <tr>
                <td style="width: 300px;">Bogota, '.$fecha_actual.'</td>
                <td>Oficio No. '.$reg['numero_folio_respuesta'].'</td>
            </tr>
            <br><br><br><br><br><br>
            <tr>
                <td>Señora:</td>
            </tr>
            <tr>
                <td><strong>'.utf8_decode($reg['nom_usu']).'</strong></td>
                <td><strong>Referencia:</strong> Respuesta a '.utf8_decode($reg['nom_tip']).'</td>
            </tr>
            <br><br><br><br>
            <tr>
                <td>Reciba un saludo de paz y bienestar,</td>
            </tr>
            <br>
            <tr>
                <td style="width: 500px;">Dando alcance a su PQRSF radicado el pasado '.$reg['fecha_pqrsf'].', me permito dar respuesta en los siguientes términos:
                </td>
            </tr>
            <br><br>
            <tr>
                <td style="width: 500px; text-align:justify; ">'.$reg['descrip'].'</td>
            </tr>
            <br><br><br>';
 
 
            if($numero_filas >0){
 
              while($fila=mysqli_fetch_array($result)){
 
                  $i++;
                  $nombre_adjunto = $fila['nom'];
                  $carpeta_adjunto = $fila['nom_2'];
                  $extension_adjunto = $fila['nom_3'];
                  $directory = "../archivos/".$carpeta_adjunto."/".$nombre_adjunto.".".$extension_adjunto;
 
                   $html.='<tr>
                              <td><a href="'.$directory.'">Archivo'.$i.'</a></td>
                          </tr>';
                }
            }
 
            $html.='<br><br><br>
            <tr>
                <td>Cordialmente,</td>
            </tr>
            <br><br><br><br>
            <tr>
                <td><strong>'.$reg['nom_4'].'<br>Auxiliar Economico<br>'.utf8_decode($reg['nom_5']).'</strong></td>
            </tr>
        </table>';
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page
$pdf->lastPage();
 
$pdf->Output('Respuesta-solicitud-PQRS.pdf', 'I');
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Liberia TCPDF

Publicado por Kathyu (905 intervenciones) el 29/01/2019 22:29:18
No es sobre TCPDF, pero es mejor utilizar Html2Pdf y así todo el HTML es convertido a PDF sin tanta cosa.

Yo hago toda la reporteria PDF super fácil y rápido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Xavi
Val: 1.009
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Liberia TCPDF

Publicado por Xavi (143 intervenciones) el 30/01/2019 08:39:24
Hola Kathyu, he buscado y hay muchas cosas Html2Pdf... nos puedes inidicar la url de la libreria o ejecutable?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Liberia TCPDF

Publicado por Kathyu (905 intervenciones) el 30/01/2019 15:50:20
Fíjese que a mi me toco "mixear" conceptos, ya que Html2Pdf esta para bundles y para proyectos con Frameworks como Symfony y otros, yo lo hice un tanto arcaico, lo explico.

Lo baje con composer para Symfony y se descargo en vendor > spipu > Html2Pdf

Bueno pues corte toda esa carpeta, desde vendor pues ocupa ciertas dependencias

Vendor
---composer
---spipu
------Html2Pdf
---tecnickcom
---autoload.php

Dentro de Html2Pdf estan todas sus clases y demas

Luego cree un archivo PRINTER que es el que me gestiona o es el que me imprime todo, su estructura es simple
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require '../resources/vendor/autoload.php';
    use Spipu\Html2Pdf\Html2Pdf;
 
    if (isset($_POST['form-acta'])) {
    	ob_start();
        require_once 'ACTA_PRINT.php';
	    $html = ob_get_clean();
 
	    $html2pdf = new Html2Pdf();
	    $html2pdf->writeHTML($html);
	    $html2pdf->output('Acta No '.$acta.'.pdf');
    }
 
    if (isset($_POST['form-recibo'])) {
    	ob_start();
        require_once 'RECIBO_PRINT.php';
	    $html = ob_get_clean();
 
	    $html2pdf = new Html2Pdf();
	    $html2pdf->writeHTML($html);
	    $html2pdf->output('Recibo No '.$recibo.'.pdf');
    }

Y como ya habrán discernido los archivos ACTA_PRINT y RECIBO_PRINT

Son los que se imprimen o los que convierto en PDF, esos archivos son PHP y HTML puros, no llevan CSS externo, sino que en el header del html pongo mis clases y el diseño de todo y se trabaja a base de tablas principalmente, algunos divs pero es mucho mejor con tablas

Y como lo llamo ? bueno desde donde quiero imprimir pongo un form (o un ancla con parámetros GET) con los parámetros que quiero que se vallan (para buscar en DB u otras cosas) y listo el PDF se hace en minutos, lo mas trabajoso es diseñar el reporte ideal

Adjunto ejemplos que he diseñado para la Cruz Roja de mi País (ya ese es el formato que el cliente ha querido)

PD: repo github https://github.com/spipu/html2pdf/ donde se puede bajar las clases y proyecto y esto viene de su web oficial https://html2pdf.fr/es/download
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Xavi
Val: 1.009
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Liberia TCPDF

Publicado por Xavi (143 intervenciones) el 30/01/2019 19:39:07
Muchas gracias por la Info!!! muy util!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar