Saltar al contenido

Codificación FPDF utf-8 (CÓMO HACERLO)

Mantén la atención porque en este tutorial vas a encontrar la solución que buscas.Este enunciado fue evaluado por nuestros expertos para garantizar la calidad y exactitud de nuestro post.

Solución:

No utilice la codificación UTF-8. Las fuentes FPDF estándar utilizan ISO-8859-1 o Windows-1252. Es posible realizar una conversión a ISO-8859-1 con utf8_decode():
$str = utf8_decode($str);
Pero algunos caracteres, como el euro, no se traducirán correctamente. Si la extensión iconv está disponible, la forma correcta de hacerlo es la siguiente:
$str = iconv('UTF-8', 'windows-1252', $str);

También hay una versión oficial UTF-8 de FPDF llamada tFPDF http://www.fpdf.org/en/script/script92.php

Puede cambiar fácilmente del FPDF original, solo asegúrese de usar también una fuente Unicode como se muestra en el ejemplo en el enlace anterior o en mi código:

AddPage();

// Add Unicode fonts (.ttf files)
$fontName = 'Helvetica';
$pdf->AddFont($fontName,'','HelveticaNeue LightCond.ttf',true);
$pdf->AddFont($fontName,'B','HelveticaNeue MediumCond.ttf',true);

//now use the Unicode font in bold
$pdf->SetFont($fontName,'B',12);

//anything else is identical to the old FPDF, just use Write(),Cell(),MultiCell()... 
//without any encoding trouble
$pdf->Cell(100,20, "Some UTF-8 String");

//...
?>

Creo que es mucho más elegante usar esto en lugar de enviar spam a utf8_decode() en todas partes y la capacidad de usar archivos .ttf directamente en AddFont() también es una ventaja.

Cualquier otra respuesta aquí es solo una forma de evitar o solucionar el problema, y ​​evitar UTF-8 no es una opción real para un proyecto actualizado.

También hay alternativas como mPDF o TCPDF (y otras) que se basan en FPDF pero ofrecen funciones avanzadas, tienen soporte UTF-8 y pueden interpretar código HTML (limitado, por supuesto, ya que no hay una forma directa de convertir HTML a PDF). La mayor parte del código FPDF se puede usar directamente en esas bibliotecas, por lo que es bastante fácil migrar el código.

https://github.com/mpdf/mpdf http://www.tcpdf.org/

hay una solución realmente simple para este problema.

En el archivo fpdf.php ve a la línea que dice:

if($txt!=='')
{

Es la línea 648 en mi versión de fpdf. Inserte la siguiente línea de código:

$txt = iconv('utf-8', 'cp1252', $txt);

(encima de la línea de código)

if($align=='R')

Esto funciona para todos los caracteres especiales alemanes y también debería funcionar para los caracteres especiales griegos. De lo contrario, simplemente reemplace cp1252 con el alfabeto respectivo que necesite. Puede ver todos los caracteres admitidos aquí: http://en.wikipedia.org/wiki/Windows-1252

Vi la solución aquí: http://fudforum.org/forum/index.php?t=msg&goto=167345 Utilice mi código de ejemplo anterior, ya que el autor original olvidó insertar un guión entre utf y 8.

Espero que lo anterior haya sido útil.

daan

Acuérdate de que te brindamos la opción de agregar una reseña si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *