Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Acentos y eñes no salen en PDFs

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
agcero
Novato
Mensajes: 6
Registrado: Vie, 25/04/2014, 17:22

Acentos y eñes no salen en PDFs

Mensaje por agcero »

Hola,

Tengo una duda.

- Tengo una instalación local de dolibarr en windows. En los PDFs (presupuestos, facturas...) imprimo correctamente textos con acentos y eñes.
- Cuando lo subo al servidor en Linux, los acentos y eñes no salen correctamente.

El texto lo imprimo así:

$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset("Texto con áéíóúñ"), 0, 'L');

También he probado:

$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset("Texto con áéíóúñ",$pagecodefrom='UTF-8'), 0, 'L');

Lo que imprime el PDF es... "Texto con".

Los textos que están en la BBDD con acentos y eñes, sí salen correctamente. Este texto es para que salga en el pie de página y lo imprimo directamente desde el código pdf_azur.modules.php

versión dolibarr: 3.4.1

Entorno Local: Windows 7 en español.
Servidor: Linux (no conozco la distribución ni versión. Es hosting compartido).

¿Qué puede estar mal?

Gracias.

Avatar de Usuario
marcosgdf
Jedi
Mensajes: 772
Registrado: Vie, 20/07/2012, 14:42
Ubicación: Valladolid, España

Mensaje por marcosgdf »

¿Has comprobado la codificación de las bases de datos y de los archivos?

Saludos.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.

agcero
Novato
Mensajes: 6
Registrado: Vie, 25/04/2014, 17:22

Mensaje por agcero »

Hola,

Gracias por tu respuesta.

Pues no he podido (o no he sabido). Es un hosting compartido y no tengo acceso a la linea de comandos siquiera. El proveedor me dice que ellos no pueden hacer nada, y me remite a este foro.

No sé si desde el script en php se podría hacer algo, o hay algún método para evitar el error. En caso contrario tendré que cambiar de proveedor.

Gracias.

Avatar de Usuario
marcosgdf
Jedi
Mensajes: 772
Registrado: Vie, 20/07/2012, 14:42
Ubicación: Valladolid, España

Mensaje por marcosgdf »

No te pedí que accedieras a la línea de comandos. Desde PHPMyAdmin puedes ver la codificación de la base de datos, y el .pdf lo estás grabando tú así que tienes que fijarte en qué codificación lo guardas.

Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.

agcero
Novato
Mensajes: 6
Registrado: Vie, 25/04/2014, 17:22

Mensaje por agcero »

Hola,

la BBDD está en UTF-8 (utf8_general_ci), pero con la BBDD no tengo ningún problema.

El problema es al generar el PDF con un texto que no sale de la BBDD, sino que imprimo desde el script php. En el primer correo está la llamada que hago, pero te la pongo aquí también:

$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset("Texto con áéíóúñ",$pagecodefrom='UTF-8'), 0, 'L');

Y lo que imprime es "Texto con". Es decir no imprime ningún carácter con acento.

Gracias.

babelsistemas
Soldado
Mensajes: 116
Registrado: Mar, 19/06/2012, 19:36

Mensaje por babelsistemas »

Esta es la funcion que no te devuelve lo que esperas(translate.class.php)

/**
* Convert a string into output charset (this->charset_output that should be defined to conf->file->character_set_client)
*
* @param string $str String to convert
* @param string $pagecodefrom Page code of src string
* @return string Converted string
*/
function convToOutputCharset($str,$pagecodefrom='UTF-8')
{
if ($pagecodefrom == 'ISO-8859-1' && $this->charset_output == 'UTF-8') $str=utf8_encode($str);
if ($pagecodefrom == 'UTF-8' && $this->charset_output == 'ISO-8859-1') $str=utf8_decode(str_replace('€',chr(128),$str));
return $str;
}

Prueba a llamarla asi :

$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset('Texto con áéíóúñ','UTF-8'), 0, 'L');

O asi(UTF-8 se usa por defecto) :

$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset('Texto con áéíóúñ'), 0, 'L');

Deberia funcionar...

Un saludo

agcero
Novato
Mensajes: 6
Registrado: Vie, 25/04/2014, 17:22

Mensaje por agcero »

Gracias, pero no funciona.

Todas las instalaciones que he hecho en en entornos distintos (Windows / Linux) (español/inglés) me han funcionado a la perfección. Esto es un hosting compartido, en el que es el propio proveedor quien lo instala automáticamente, pero no da soporte a la instalación (¡!).

Me temo que la solución es cambiar de proveedor.

Gracias a todos por vuestro tiempo :-)