Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2010, 21:19
MAKANDY
 
Fecha de Ingreso: junio-2010
Ubicación: Talcahuano
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
Problemas con ñ y acentos en clase R&OS PDF

Encontré un tema del foro que nunca tuvo conclusión así que ahora que por mi parte encontré la solución al mismo quisiera hacer el aporte. Debo destacar que gracias a Dios, este foro ha sido de beneficio para mí al aprender PHP así que por esto es que voy a dejar este comentario.

El tema al que hago referencia estaba en esta dirección [URL="http://www.forosdelweb.com/f18/problemas-con-n-acentos-clase-r-os-pdf-276974"]http://www.forosdelweb.com/f18/problemas-con-n-acentos-clase-r-os-pdf-276974[/URL] y nunca pudieron encontrar el problema que ocurría cuando se trataba de resolver el asunto de los acentos y ñ al capturar datos de la base de datos MySQL y pasarlos a un archivo PDF creado con la clase R&OS PDF.

Buscando en la red me encontre con una solucion en la que se agrega una linea al codigo de class.pdf.php, el codigo que hay que agregar es este:

Código PHP:
Ver original
  1. $text = utf8_decode($text);

Se busca la linea 2156 y veran esto:

Código PHP:
Ver original
  1. function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
  2.   if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}

Haciendo los cambios debería quedar así:

Código PHP:
Ver original
  1. function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
  2.   $text = utf8_decode($text);
  3.   if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}

Lo comentado anteriormente resuelve el problema al escribir acentos y "Ñ", pero cuando traemos datos de la "tabla" ahí está el problema porque muchas veces el charset de la tabla no está en UTF-8.
Para resolver el problema hay que utilizar el comando "utf8_encode" y con esto resolvemos el problema de los acentos y "Ñ" que vienen directamente de la base de datos.

En mi caso hice lo siguiente al asignar el valor a las variables:

Código PHP:
Ver original
  1. $observaciones= utf8_encode($row["observaciones"]);

Ahora no tengo problemas y espero que los que tengan el mismo atado que tuve por horas puedan resolverlo.

Saludos a todos.

Última edición por MAKANDY; 20/06/2010 a las 15:54