Reemplazar caracteres especiales por tildes y eñes al Generar PDF con Cezpdf y php

Estoy generando los PDF con la classe Cezpdf, pero no logro conseguir que imprima adecuadamente las Tildes y las eñes.

El resultado que obtengo es así:

En PHP lo he solucionado utilizando el código:

header('Content-Type: text/html; charset=ISO-8859-1');

 pero al usar la classe Cezpdf no tiene efecto alguno.

Mi código fuente es el siguiente:

¿
<?php
if (!isset($_SESSION)) {  session_start();}
ini_set('default_charset','utf-8');
header('Content-Type: text/html; charset=ISO-8859-1');
$propiedad = $_SESSION['nombre_prop'];$nit = $_SESSION['nit_prop'];
$direccion = $_SESSION['direccion_prop'];
$ciudad = $_SESSION['ciudad_prop'];
$id_prop = $_SESSION['id_prop'];
$logo = $_SESSION['imagen'];
require_once('src/Cezpdf.php');
include('class.backgroundpdf.php');
$pdf =& new Cezpdf('LETTER','portrait');
$pdf->selectFont('src/fonts/Helvetica-BoldOblique.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);
$conexion = mysql_connect("localhost", "XXXXXXXXXX", "XXXXXXXXXX");
mysql_select_db("g7000610_admin", $conexion);
$resultado_consulta_mysql=mysql_query($consulta_mysql,$conexion);
$queEmp = "SELECT bdedp.nombre as BdeDP, bdedp.maticula as Matricula, propietarios.nombre  as Propietario, bdedp.area as Area, bdedp.porc_t as Porcentaje, bdedp.tabla as Tabla FROM bdedp inner join propietarios on bdedp.id_propietario = propietarios.id WHERE bdedp.propiedad = '$id_prop' AND bdedp.activo = 'S' ORDER BY bdedp.tabla, bdedp.nombre";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
$ixx = 0;
while($datatmp = mysql_fetch_assoc($resEmp)) {
    $ixx = $ixx+1;
    $data[] = array_merge($datatmp);
}
$titles = array(
                'BdeDP'=>'<b>Nombre BdeDP</b>',
                'Matricula'=>'<b>Matrícula</b>',
                'Area'=>'<b>Area M2</b>',
                'Propietario'=>'<b>Propietario</b>',
                'Porcentaje'=>'<b>Por Part %</b>',
                'Tabla'=>'<b>Tabla</b>'
            );
$titles = mb_convert_encoding($titles, "ISO-8859-1", "UTF-8");
$options = array(
                'shadeCol'=>array(0.9,0.9,0.9),
                'xOrientation'=>'center',
                'width'=>500
            );
$txttit.= " \n";
$txttit = "<b>$propiedad</b>\n";
$pdf->ezImage("../Logotipos/uploads/".$logo, 00,100,100,100);
$txttit.= "$direccion \n";
$txttit.= "$ciudad \n";
$txttit.= " \n";
$txttit.= "Listado de Bienes de Dominio Particular de la Copropiedad \n";
$txttit.= " \n";
$datacreator = array (
                    'Title'=>'Bienes de Dominio Particular de  '.$propiedad,
                    'Subject'=>$propiedad,
                    'Author'=>'si-RPH',
                    'Producer'=>'http://www.legis.club'
                    );
$pdf->addInfo($datacreator);
$pdf->ezText($txttit,16,array('justification'=>'center'));
//$pdf->ezText($txttit, 12);
$pdf->ezTable($data, $titles, '', $options);
$pdf->ezText("\n\n\n", 10);
$pdf->ezText("<b>Fecha del Informe:</b> ".date("Y-m-d"), 10);
$pdf->ezText("<b>Hora:</b> ".date("H:i:s")."\n\n", 10);
$pdf->ezStream();
?>

en el Manual de la classe hablan de:

ini_set('default_charset','utf-8');

Pero tampoco me ha funcionado.

¿Alguien del foro puede darme una mano para solucionar este inconveniente?

2

2 respuestas

Respuesta

Usa el tipo utf-8 te servirá con los caracteres

gracias por responder

no entiendo. Cómo lo uso?, cual es la instrucción?

he usado: 

$propiedad = utf8_decode($propiedad);

NO funciona

ini_set('default_charset','utf-8');
header('Content-Type: text/html; charset=ISO-8859-1');

Tampoco.

a que te refieres al decirme: "Usa el tipo utf-8"

gracias

Me refiereo de esta forma

header('Content-Type: text/html; charset=utf8');

Disculpa me falto un guion es

header('Content-Type: text/html; charset=UTF-8');

al cambiar el header ocurre lo siguiente:

por ahì no es...

Quiero saber algo para ayudarte más es archivo es estático me refiero a estático si la información no cambia

Respuesta

Tengo el mismo problema, ¿has conseguido solucionarlo?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas