Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

DOMPDF problemas con ñ

Estas en el tema de DOMPDF problemas con ñ en el foro de Sistemas de gestión de contenidos en Foros del Web. Hola a tod@s. Para los que usáis la librería dompdf, es muy buene para generar PDFs a partir de html generado con php. Aquí podéis ...
  #1 (permalink)  
Antiguo 04/08/2008, 04:56
 
Fecha de Ingreso: febrero-2005
Ubicación: Cádiz
Mensajes: 50
Antigüedad: 19 años, 2 meses
Puntos: 2
DOMPDF problemas con ñ

Hola a tod@s.

Para los que usáis la librería dompdf, es muy buene para generar PDFs a partir de html generado con php.

Aquí podéis ver muchos ejemplos y eso:

http://www.inventa-design.com/blog/2.../#comment-6117

http://www.digitaljunkies.ca/dompdf/

____________________________________

Bien, el problema que tengo es que yo en una variable de PHP $nombre = España, pues bien, si pongo en el html a crear:
Código PHP:
echo "$nombre <br/>"
Me aparece bien españa.

Sin embargo, el dompdf, hace una segunda pasada para poner la cabecera, el pie y los bordes del pdf y decorarlo, y esos datos los recoge de una segunda pasada al php de antes pero recogiendo lo que tiene dentro de:
Código PHP:
<script type="text/php">
    $header=$pdf->open_object();
    $font = Font_Metrics::get_font("verdana", "normal");
    $h = "<?=$nombre?>";
.
.
.
    $pdf->page_text(10 , 10, $h , $font, 10, array(0,0,25));
    $pdf->close_object();
    $pdf->add_object($header, "all");
</script>
Bien, pues dentro de ese script de php no puedo poner $h = $nombre porque en la segunda pasada no recoge la variable, por lo que tengo que ponerle $h="<?=$nombre?>"; para que al cargase, se traduzca como $h="españa"; y lo hace, eso no está mal porque al poner:

Código PHP:
echo $h
me aparece España.

Bien, pero en el PDF me aparece Espa?

he intentado poner &ntilde; por la ñ pero nada, aparece el &ntilde; a pelo.

¿alguna idea?
  #2 (permalink)  
Antiguo 11/08/2008, 10:18
 
Fecha de Ingreso: febrero-2005
Ubicación: Cádiz
Mensajes: 50
Antigüedad: 19 años, 2 meses
Puntos: 2
De acuerdo Respuesta: DOMPDF problemas con ñ

En fin, me contesto yo a mi mismo y a los que tienen o tendrán el mismo problema.

La librería GRATIS que ofrece acrobat reader para crear sus pdfs no soportan en la parte de segunda renderización (para cabeceras, pies y laterales en cada pagina), la codificación utf-8, así que la Ñ de España se va a la... , pues nada para poder hacerlo hay que comprar la librería oficial de pago, así que yo le digo a acrobat , claaaaaro que si, voy corriendo y te lo pago, para eso estamos los ingenieros, ¡¡¡TRUCO AL CANTO!!!

Generamos el texto en utf-8 a traves de php y lo pasamos a jpg con la librería GD de esta forma:

FICHERO CREADOR DE JPG
Código PHP:
<?php
header
("Content-type: image/jpeg");
$texto $_GET["texto"];
$texto urldecode($texto);
$imagen imagecreatetruecolor(30,800); // ancho x alto

$blanco imagecolorallocate($imagen255,255,255); //Creamos y rellenamos de blanco
$negro imagecolorallocate($imagen000);
$rojo imagecolorallocate($imagen25500);
$amarillo imagecolorallocate($imagen2552550);
$azul imagecolorallocate($imagen00255);
$cian imagecolorallocate($imagen0255255);
$grisaceo imagecolorallocate($imagen200200200);

$fuente './system/fonts/verdana.ttf';

imagefill($imagen55$blanco); //se rellena de blanco

imagettftext($imagen89016790$grisaceo$fuente$texto);
imagettftext($imagen89014788$negro$fuente$texto);
//Se crean las dos cadenas para la sombra con una fuente que soporte los caracteres especiales como la verdana, el tercer parametro es los grados, ese texto lo quiero vertical.

imagejpeg($imagen"./Imagenes/tmp/lateral_pdf.jpg"80);
imagedestroy($imagen);
?>
FICHERO CREADOR DE PDF (solo la linea que interesa en este apartado)
Código PHP:
$pdf->image("<?=$ruta?>../Imagenes/tmp/lateral_pdf.jpg", "jpg", 5,100, 20, 533);
Ahora hemos de llamar a los dos PHP en orden JPG -> PDF para que la jpg se cree antes que el pdf, ¡¡y listo!!
  #3 (permalink)  
Antiguo 09/07/2009, 14:14
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: DOMPDF problemas con ñ

Tu problema esta en la codificación de la base de datos lo único que tienes que hacer es agregar un UTF8_DECODE y ya solucionado. y si lo variable la estas chachando no importa recuerda que los caracteres con acentos o tildes se guardan como si fueran basura

$header=$pdf->open_object();
$font = Font_Metrics::get_font("verdana", "normal");
$h = "<?=utf8_decode($nombre)?>";
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:28.