Error al imprimir con FOP (SOLUCIONADO)

Hola,
Les consulto lo siguiente, actualizé a la versión 1.14.3 del sistema y cuando intento imprimir las fichas de bienes me da el siguiente error:


Warning: SimpleXMLElement::addAttribute() [simplexmlelement.addattribute]: string is not in UTF-8 in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 420

Warning: SimpleXMLElement::asXML() [simplexmlelement.asxml]: output conversion failed due to conv error, bytes 0xED 0x63 0x74 0x6F in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 460

Warning: SimpleXMLElement::addAttribute() [simplexmlelement.addattribute]: encoder errorstring is not in UTF-8 in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 420

Warning: SimpleXMLElement::asXML() [simplexmlelement.asxml]: output conversion failed due to conv error, bytes 0xED 0x63 0x74 0x6F in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 460

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 542

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 614
fop -fo /disco/diaguita/prod/diaguita/toba/temp/Bien_uso_00900001.pdf.out.fo -pdf /disco/diaguita/prod/diaguita/toba/temp/Bien_uso_00900001.pdf

Y nunca sale la ficha de bienes, ¿cómo se puede solucionar este problema?

Hola Victor,

En general, los warnings que se esta visualizando corresponden a problemas de ENCODING. Si podés proporcionar un poco mas de información para analizar:

  • sistema operativo
  • lenguaje y encoding del sistema operativo (comando locale en linux)
  • encoding del cluster de la db postgres (con el que se instaló)

Viendo un poco el código relacionado con este warning:

[simplexmlelement.addattribute]: string is not in UTF-8 in /disco/diaguita/prod/diaguita/aplicacion/php/extension_toba/ci_diaguita.php on line 420

Creo entender que se origina porque en los datos que conforma el nombre de usuario existen caracteres especiales que no estan expresados en UTF8. En la línea 420 de ci_diaguita.php se incorpora un nuevo atributo general para todas las salidas:


$datos_anexos->addAttribute('USUARIO_COMPLETO',toba::usuario()->get_nombre());

Te pediría que prueben comentarlo para que se ignore completamente, o convertirlo explícitamente a UTF8 asi:


$datos_anexos->addAttribute('USUARIO_COMPLETO',utf8_encode(toba::usuario()->get_nombre()));

Adicionalmente, te pido lo reporten en el GDS para implementar la solución en el sistema. Espero tus comentarios!

Sergio:

Te paso los datos que me pedis:

  • sistema operativo
Ubuntu 12.04 LTS
  • lenguaje y encoding del sistema operativo (comando locale en linux)
LANG=es_AR.UTF-8
LANGUAGE=
LC_CTYPE="es_AR.UTF-8"
LC_NUMERIC="es_AR.UTF-8"
LC_TIME="es_AR.UTF-8"
LC_COLLATE="es_AR.UTF-8"
LC_MONETARY="es_AR.UTF-8"
LC_MESSAGES="es_AR.UTF-8"
LC_PAPER="es_AR.UTF-8"
LC_NAME="es_AR.UTF-8"
LC_ADDRESS="es_AR.UTF-8"
LC_TELEPHONE="es_AR.UTF-8"
LC_MEASUREMENT="es_AR.UTF-8"
LC_IDENTIFICATION="es_AR.UTF-8"
LC_ALL=

  • encoding del cluster de la db postgres (con el que se instaló)

       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'es_AR.UTF-8'
       LC_CTYPE = 'es_AR.UTF-8'
       CONNECTION LIMIT = -1;

Igualmente, te comento que cambié la línea que me decis en ci_diaguita.php y salió funcionando. Les paso el tema por GdS por las dudas. Gracias!