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.