[V8] Error en CSS de informes. Desaparecen cabecera y pie de página (SOLUCIÓN)

411 views
Skip to first unread message

Javi García Panach

unread,
Jan 21, 2016, 11:35:03 AM1/21/16
to Usuarios Odoo / OpenERP en España
Hola a todos, la semana pasada nos encontramos con este problema al que encontramos solución.
Por si a alguien le pasa lo mismo, la publicamos aquí.

Un saludo!

Hemos encontrado un problema a la hora de imprimir informes en odoo (Imagen factura adjunta)

El problema se presenta a la hora de asociar un dominio para el servidor y redirigir el puerto de odoo 8069 al 80 (con eso evitamos poner al final del url el puerto 8069).

Comando para la redirección: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8069

Los informes son renderizados por wkhtmltopdf, y ésta librería utiliza el parámetro web.url.base de odoo para localizar los ficheros (html, css),
si este parámetro cambia en algún momento, los estilos css en este caso no pueden ser alcanzados y los informes obviamente se imprimen sin estilos.

Antes de dar con la solución hemos realizado varias pruebas en el servidor

  • desinstalar wkhtmltopdf
  • probar varias versiones (0.9.3, 0.12.1, 0.12.2) para varias distribuciones linux de 64bits en este caso (trusty, wheezy, ...)
  • De esta forma hemos podido comprobar que la versión 0.12.1 es la que mejor funciona.
  • Reiniciar el servidor ubuntu server
  • generar nuevos parámetros url del sistema como se recomienda en este issue: https://github.com/odoo/odoo/issues/1105
  • modificaciones en el código python del módulo report
  • comparativas de módulos instalados de dos bases de datos (por si algún módulo causaba conflictos)
  • Actualización con el comando update -all para toda la base de datos.

Hasta que hemos encontrado esta documentación donde nos ayudó a comprender y solucionar el problema:
https://www.odoo.com/documentation/8.0/howtos/backend.html#reporting

If it appears that your PDF report is missing the styles (i.e. the text appears but the style/layout is different from the html version),
probably your wkhtmltopdf process cannot reach your web server to download them.

If you check your server logs and see that the CSS styles are not being downloaded when generating a PDF report, most surely this is the problem.

The wkhtmltopdf process will use the web.base.url system parameter as the root path to all linked files,
but this parameter is automatically updated each time the Administrator is logged in. If your server resides behind some kind of proxy,
that could not be reachable.

Solución:
You can fix this by adding one of these system parameters:

  • report.url, pointing to an URL reachable from your server (probably http://localhost:8069 or something similar). It will be used for this particular purpose only.
  • web.base.url.freeze, when set to True, will stop the automatic updates to web.base.url.


En nuestro caso ha bastado con agregar un parámetro report.url con el valor: http://127.0.0.1:8069

Dentro de: *Configuración > Técnico > Parámetros > Param. del sistema

Message has been deleted

cubells

unread,
Aug 21, 2016, 5:09:37 AM8/21/16
to openerp-s...@googlegroups.com
El 21/08/16 a les 06:57, neftali ramirez justo ha escrit:
> Que tal, hace tiempo yo tenia el mismo problema hasta que lo solucione
> de la misma manera, el detalle es que si cambio el parametro report.url
> a http://127.0.0.1:8069, cuando ingreso al servidor desde
> www.midominio.com, el parámetro se cambia solo y toma el valor de dominio.
>


Añade un parámetro más:

web.base.url.freeze

con el valor true


--
Atentament, cubells.
--

Francisco Fernández-Mayoralas

unread,
Aug 22, 2016, 1:30:32 AM8/22/16
to Usuarios Odoo / OpenERP en España
Exacto, suponiendo wkhmtltopdf funcione correctamente y sea una versión correcta (leí que la última versión no funcionaba correctamente con Odoo pero no sé si lo habrán solucionado ya) y que también tienes las dependencias pues miraría como ha dicho Cubells que la report url ponga la IP local hostost : puerto que utiliza Odoo y mismo que tienes indicado en el archivo de configuración que levanta Odoo que por defecto es 8069

Un saludo

El jueves, 21 de enero de 2016, 17:35:03 (UTC+1), Javi García Panach escribió:
> Hola a todos, la semana pasada nos encontramos con este problema al que encontramos solución.
> Por si a alguien le pasa lo mismo, la publicamos aquí.
>
>
> Un saludo!
>
>
>
> Hemos encontrado un problema a la hora de imprimir informes en odoo (Imagen factura adjunta)
>
>
>
> El problema se presenta a la hora de asociar un dominio para el servidor y redirigir el puerto de odoo 8069 al 80 (con eso evitamos poner al final del url el puerto 8069).
>
>
>
>
> Comando para la redirección: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8069
> Los informes son renderizados por wkhtmltopdf, y ésta librería utiliza el parámetro web.url.base de odoo para localizar los ficheros (html, css),
> si este parámetro cambia en algún momento, los estilos css en este caso no pueden ser alcanzados y los informes obviamente se imprimen sin estilos.
> Antes de dar con la solución hemos realizado varias pruebas en el servidordesinstalar wkhtmltopdfprobar varias versiones (0.9.3, 0.12.1, 0.12.2) para varias distribuciones linux de 64bits en este caso (trusty, wheezy, ...)De esta forma hemos podido comprobar que la versión 0.12.1 es la que mejor funciona.Reiniciar el servidor ubuntu servergenerar nuevos parámetros url del sistema como se recomienda en este issue: https://github.com/odoo/odoo/issues/1105modificaciones en el código python del módulo reportcomparativas de módulos instalados de dos bases de datos (por si algún módulo causaba conflictos)Actualización con el comando update -all para toda la base de datos.
> Hasta que hemos encontrado esta documentación donde nos ayudó a comprender y solucionar el problema:
> https://www.odoo.com/documentation/8.0/howtos/backend.html#reporting
> If it appears that your PDF report is missing the styles (i.e. the text appears but the style/layout is different from the html version),
> probably your wkhtmltopdf process cannot reach your web server to download them.
> If you check your server logs and see that the CSS styles are not being downloaded when generating a PDF report, most surely this is the problem.
> The wkhtmltopdf process will use the web.base.url system parameter as the root path to all linked files,
> but this parameter is automatically updated each time the Administrator is logged in. If your server resides behind some kind of proxy,
> that could not be reachable.
> Solución:
> You can fix this by adding one of these system parameters:report.url, pointing to an URL reachable from your server (probably http://localhost:8069 or something similar). It will be used for this particular purpose only.web.base.url.freeze, when set to True, will stop the automatic updates to web.base.url.

Jose Enrique Saiz

unread,
Aug 23, 2016, 1:38:28 PM8/23/16
to Usuarios Odoo / OpenERP en España

Esto a mi me ha resuelto la cabecera pero no el pie de pagina.... ¿Que mas se puede hacer?



El jueves, 21 de enero de 2016, 17:35:03 (UTC+1), Javi García Panach escribió:

Fernando Garcia Hansen

unread,
Aug 24, 2016, 5:29:44 AM8/24/16
to Usuarios Odoo / OpenERP en España
En la versión 9 esa solución no me funcionó.


El jueves, 21 de enero de 2016, 17:35:03 (UTC+1), Javi García Panach escribió:

Alfonso Lourido

unread,
Apr 16, 2018, 12:23:59 PM4/16/18
to Usuarios Odoo / OpenERP en España
Hola,

Tengo el mismo problema al pasar el html a pdf: pierdo la cabecera y el pie. No se imprimen las imágenes.

Yo trabajo con Odoo 9 instalado en un servidor con Linux CentOS 7.3 desde un mac OS Sierra.

Tengo instalado el wkhtmltpdf versión 0.12.1 (with patched qt) en el servidor.

En parámetros, tengo estos valores:

web.base.url   http://miservidor
web.base.url.freeze   True
report.url    http://127.0.0.1:8069

¿Alguna idea de cómo puedo solucionarlo?

Un saludo y muchas gracias
Reply all
Reply to author
Forward
0 new messages