FPDF - Tíldes y caracteres UTF-8

martes, 20 de mayo de 2008

Para las personas que utilizan fpdf como libreria para generar archivos PDF con php y tienen el molesto problema de no poder escribir caracteres como (á, é, í, ó, ú, ñ) porque les aparecen unos simbolos extraños, les comento que la solcuión para ello es hacer uso de la función utf8_decode() de php que convierte nuestros caracteres a ISO-8859-1, de tal forma que si desean ingresar el siguiente texto.

"la niña juega en un árbol"

Debemos ponerla de la siguiente forma

utf8_decode("la niña juega en un árbol")

Y listo, tendremos nuestros caracteres bien.


28 comentarios:

MARTINMORSA dijo...

Mil gracias!!! Me estaba volviendo loco y era tan sensillo!!

Gracias nuevamente.

3fr@out dijo...

Gracias HAL, la verdad que se encuentra poca información tan directa como la presentastes, funciona muy bien!!!

fuenteamarga dijo...

Y que pasa cuando lo que quieres imprimir los tienes en formato UTF-8?? Necesito imprimir caracteres cirilicos, y esta solución no sirve.

mi blog dijo...

como puedo generar caracteres en chino con fpdf?

Si me pueden ayudar se los agradecería!!!

David Maya

Daniel dijo...

Simple y rapido. Hacer un voverride al metodo Write() para que me convierta todas las cadenas antes de imprimirlas en el PDF.

johersa dijo...

Muchas gracias por la información. Muy Útil

AgusLaguna dijo...

Puedes modificar el fichero de FPDF, dentro de la carpeta "makefont" en "fpdf" esta el archivo "fpdf.php" que es el que carga las funciones, añade a la función Cell, al principio,
"$txt = utf8_decode($txt);"
sin las comillas, de este modo no tendras que añadir continuamente la funcion utf8_decode() cada vez que llames a Cell(), no hace falta añadir nada a MultiCell() ni a Write() ya que estas funciones llaman a Cell() internamente.
Espero que ayude, un saludo.

gustavo dijo...

excente me sirvio resto

Unknown dijo...

Hola yo solo tengo una duda, espero que me la puedan contestar..

veran cuando uso fpdf para crear mis pdf, a la hora de querer

mostrarlo en la pagina, no se muestra porque tengo un descargador

que detecta archivos descargables.. mi pregunta es: se puede

hacer algo mediante php para que el pdf no se pueda descargar al

instante, si no que primero se muestre y despues de que se haya

mostrado ahora si tenga opcion de descargarse..

bueno muchas gracias.. espero que esto tengo solucion, la verdad

soy principiante y no se si eso es podible.. otra ves gracias...

:)

Unknown dijo...

Yo tenia el problema y funcionaba en parte, solo cuando eran textos estaticos o variables , pero cuando, las variables las tomaba de la base de datos no funcionaba, encontre esta paguina: http://www.cristalab.com/tutoriales/configurar-tu-web-para-usar-utf-8-c42532l/ eso me dio la solución para, y solo faltaba una linea, despues de hacer la conexión a la base de datos, por ejemplo:

miConexion($MiBase,$MiUsuario,$MiPassword);
mysql_query("SET NAMES 'utf8'");

y listo solucionado :)

Alejandra Gutiérrez dijo...

Gracias AgusLaguna, muy buena solución, cómo me has ayudado!

Alejandra Gutiérrez dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Gracias!! probé con <meta, cambiando al codificación en la BD, con header(), de todo y sólo esto funcionó!! gracias!

Gabo dijo...

La solución de @AgusLaguna es genial, para evitar hacerlo uno por uno :D

audi dijo...

he seguido vuestros consejos (AgusLaguna) pero no consigo que renderice correctamente el símbolo del euro....

Cuál es vuestra solución?

omega96 dijo...

Muchas gracias me sirvio muy bien, Saludos.

Unknown dijo...

Muchas gracias por tu apoyo me salvo , de un proyecto jeje Xd que tengas buen día

Jaguar dijo...

AgusLaguna, Gracias por tu linea de codigo tan simple , me estaba volviendo loco con esto de los caracteres especiales.

arnotixe dijo...

Muchas gracias ñaño!

Angerson Lasso dijo...

UFF EXCELENTE GRACIAS MUY BUEN APORTE.

Angerson Lasso dijo...

excelente muy buen aporte mil gracias

Homero dijo...

Hace ya tiempo de esta solución pero no puedo pasar sin agradecer. Muchas gracias

Rubengar dijo...

Gracias a todos, un último grano de arena, aquí dejo para arreglar lo del simbolo del euro
"$cEuro = iconv('UTF-8', 'windows-1252', '€');"

Unknown dijo...

Muchisimas gracias!!

RubenchO dijo...

Gracias compa, funciono.

Unknown dijo...

me salvaste el día TE AMO !

Edgar Abanto dijo...

Eres un capo, muchas gracias man!

Unknown dijo...

Excelente!!! Muchas Gracias.