Discussion:
[tryton-es] Generacion directa de informes en pdf
Antonio Roncero
2015-04-08 18:33:19 UTC
Permalink
Hola de nuevo,

estoy intentando generar pdf directamente para algunos informes, para ello
he ido a acciones-> informes y he seleccionado en *Extension: Portable
Document Format.*

Cuando le doy para generar el informe me sale el siguiente error:

Traceback (most recent call last):
File "/trytond/protocols/jsonrpc.py", line 150, in _marshaled_dispatch
response['result'] = dispatch_method(method, params)
File "/trytond/protocols/jsonrpc.py", line 179, in _dispatch
res = dispatch(*args)
File "/trytond/protocols/dispatcher.py", line 161, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/report/report.py", line 144, in execute
type, data = cls.parse(action_report, records, data, {})
File "/trytond/modules/company/company.py", line 365, in parse
localcontext)
File "/trytond/report/report.py", line 301, in parse
data = cls.unoconv(data, report.template_extension, output_format)
File "/trytond/report/report.py", line 322, in unoconv
raise Exception(stderrdata)
Exception: None

En el servidor parece que es un error de unoconv

['unoconv',
'--connection=pipe,name=trytond;urp;StarOffice.ComponentContext', '-f',
u'pdf', '--stdout', u'/tmp/trytond_ab42uV.odt']
unoconv: UnoException during export phase:
Unable to store document to private:stream (ErrCode 3088)


En /tmp los permisos son correctos y en la carpeta definida en el parametro
path del archivo de configuración también.

unoconv (0.6) y libreoffice (4.3.3.2) están instalados en el servidor.

Gracias
Raimon Esteve
2015-04-09 07:44:30 UTC
Permalink
Post by Antonio Roncero
Hola de nuevo,
estoy intentando generar pdf directamente para algunos informes, para ello
he ido a acciones-> informes y he seleccionado en Extension: Portable
Document Format.
Si el informe es ODT, no deberias usar la extención PDF
Post by Antonio Roncero
File "/trytond/protocols/jsonrpc.py", line 150, in _marshaled_dispatch
response['result'] = dispatch_method(method, params)
File "/trytond/protocols/jsonrpc.py", line 179, in _dispatch
res = dispatch(*args)
File "/trytond/protocols/dispatcher.py", line 161, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/report/report.py", line 144, in execute
type, data = cls.parse(action_report, records, data, {})
File "/trytond/modules/company/company.py", line 365, in parse
localcontext)
File "/trytond/report/report.py", line 301, in parse
data = cls.unoconv(data, report.template_extension, output_format)
File "/trytond/report/report.py", line 322, in unoconv
raise Exception(stderrdata)
Exception: None
En el servidor parece que es un error de unoconv
['unoconv',
'--connection=pipe,name=trytond;urp;StarOffice.ComponentContext', '-f',
u'pdf', '--stdout', u'/tmp/trytond_ab42uV.odt']
Unable to store document to private:stream (ErrCode 3088)
En /tmp los permisos son correctos y en la carpeta definida en el parametro
path del archivo de configuración también.
unoconv (0.6) y libreoffice (4.3.3.2) están instalados en el servidor.
Gracias
--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette

Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette

Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
Antonio Roncero
2015-04-09 07:51:37 UTC
Permalink
Entonces, ¿como deberia hacerlo? pensaba que unoconv convertia desde odt a
pdf.

Gracias
Post by Antonio Roncero
Hola de nuevo,
estoy intentando generar pdf directamente para algunos informes, para
ello
Post by Antonio Roncero
he ido a acciones-> informes y he seleccionado en Extension: Portable
Document Format.
Si el informe es ODT, no deberias usar la extención PDF
Post by Antonio Roncero
File "/trytond/protocols/jsonrpc.py", line 150, in _marshaled_dispatch
response['result'] = dispatch_method(method, params)
File "/trytond/protocols/jsonrpc.py", line 179, in _dispatch
res = dispatch(*args)
File "/trytond/protocols/dispatcher.py", line 161, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/report/report.py", line 144, in execute
type, data = cls.parse(action_report, records, data, {})
File "/trytond/modules/company/company.py", line 365, in parse
localcontext)
File "/trytond/report/report.py", line 301, in parse
data = cls.unoconv(data, report.template_extension, output_format)
File "/trytond/report/report.py", line 322, in unoconv
raise Exception(stderrdata)
Exception: None
En el servidor parece que es un error de unoconv
['unoconv',
'--connection=pipe,name=trytond;urp;StarOffice.ComponentContext', '-f',
u'pdf', '--stdout', u'/tmp/trytond_ab42uV.odt']
Unable to store document to private:stream (ErrCode 3088)
En /tmp los permisos son correctos y en la carpeta definida en el
parametro
Post by Antonio Roncero
path del archivo de configuración también.
unoconv (0.6) y libreoffice (4.3.3.2) están instalados en el servidor.
Gracias
--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette
Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette
Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
Antonio Roncero
2015-04-11 10:25:58 UTC
Permalink
Al final lo he solucionado tocando el codigo del report.py

Por lo visto en Debian a veces da error al ejecucion de unoconv si la
salida es el stdout. Es un "parche" para salir del paso mientras analizo
mas a fondo el problema


#cmd = ['/usr/local/bin/unoconv', '--connection=\'%s\'' %
config.get('report', 'unoconv'),
# '-f', oext, '--stdout', path]
##PARCHE PARA IMPRIMIR PDF FALLA EN EL STDOUT
import re
outputpath = re.sub('.odt', '.%s' % (oext), path)
if os.path.exists(outputpath):
os.unlink(outputpath)

cmd = "/usr/local/bin/unoconv --connection='%s' -f %s %s >
/dev/null 2>&1" % (config.get('report', 'unoconv'),oext, path)
try:
import commands
status, output = commands.getstatusoutput(cmd)
if os.path.exists(outputpath):
with open(outputpath, 'r') as content_file:
stdoutdata = content_file.read()
else:
raise "ERROR"
return stdoutdata
finally:
os.remove(path)
os.remove(outputpath)
Post by Antonio Roncero
Entonces, ¿como deberia hacerlo? pensaba que unoconv convertia desde odt a
pdf.
Gracias
Post by Antonio Roncero
Hola de nuevo,
estoy intentando generar pdf directamente para algunos informes, para
ello
Post by Antonio Roncero
he ido a acciones-> informes y he seleccionado en Extension: Portable
Document Format.
Si el informe es ODT, no deberias usar la extención PDF
Post by Antonio Roncero
File "/trytond/protocols/jsonrpc.py", line 150, in
_marshaled_dispatch
Post by Antonio Roncero
response['result'] = dispatch_method(method, params)
File "/trytond/protocols/jsonrpc.py", line 179, in _dispatch
res = dispatch(*args)
File "/trytond/protocols/dispatcher.py", line 161, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/report/report.py", line 144, in execute
type, data = cls.parse(action_report, records, data, {})
File "/trytond/modules/company/company.py", line 365, in parse
localcontext)
File "/trytond/report/report.py", line 301, in parse
data = cls.unoconv(data, report.template_extension, output_format)
File "/trytond/report/report.py", line 322, in unoconv
raise Exception(stderrdata)
Exception: None
En el servidor parece que es un error de unoconv
['unoconv',
'--connection=pipe,name=trytond;urp;StarOffice.ComponentContext', '-f',
u'pdf', '--stdout', u'/tmp/trytond_ab42uV.odt']
Unable to store document to private:stream (ErrCode 3088)
En /tmp los permisos son correctos y en la carpeta definida en el
parametro
Post by Antonio Roncero
path del archivo de configuración también.
unoconv (0.6) y libreoffice (4.3.3.2) están instalados en el servidor.
Gracias
--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette
Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette
Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
Fernando Sánchez
2016-11-10 03:41:54 UTC
Permalink
Saludos a la comunidad.
Post by Antonio Roncero
Al final lo he solucionado tocando el codigo del report.py
Por lo visto en Debian a veces da error al ejecucion de unoconv si la
salida es el stdout. Es un "parche" para salir del paso mientras analizo
mas a fondo el problema
#cmd = ['/usr/local/bin/unoconv', '--connection=\'%s\'' %
config.get('report', 'unoconv'),
# '-f', oext, '--stdout', path]
##PARCHE PARA IMPRIMIR PDF FALLA EN EL STDOUT
import re
outputpath = re.sub('.odt', '.%s' % (oext), path)
os.unlink(outputpath)
cmd = "/usr/local/bin/unoconv --connection='%s' -f %s %s >
/dev/null 2>&1" % (config.get('report', 'unoconv'),oext, path)
import commands
status, output = commands.getstatusoutput(cmd)
stdoutdata = content_file.read()
raise "ERROR"
return stdoutdata
os.remove(path)
os.remove(outputpath)
Post by Antonio Roncero
Entonces, ¿como deberia hacerlo? pensaba que unoconv convertia desde odt
a pdf.
Gracias
Post by Antonio Roncero
Hola de nuevo,
estoy intentando generar pdf directamente para algunos informes, para
ello
Post by Antonio Roncero
he ido a acciones-> informes y he seleccionado en Extension: Portable
Document Format.
Si el informe es ODT, no deberias usar la extención PDF
Post by Antonio Roncero
File "/trytond/protocols/jsonrpc.py", line 150, in
_marshaled_dispatch
Post by Antonio Roncero
response['result'] = dispatch_method(method, params)
File "/trytond/protocols/jsonrpc.py", line 179, in _dispatch
res = dispatch(*args)
File "/trytond/protocols/dispatcher.py", line 161, in dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/report/report.py", line 144, in execute
type, data = cls.parse(action_report, records, data, {})
File "/trytond/modules/company/company.py", line 365, in parse
localcontext)
File "/trytond/report/report.py", line 301, in parse
data = cls.unoconv(data, report.template_extension, output_format)
File "/trytond/report/report.py", line 322, in unoconv
raise Exception(stderrdata)
Exception: None
En el servidor parece que es un error de unoconv
['unoconv',
'--connection=pipe,name=trytond;urp;StarOffice.ComponentContext',
'-f',
Post by Antonio Roncero
u'pdf', '--stdout', u'/tmp/trytond_ab42uV.odt']
Unable to store document to private:stream (ErrCode 3088)
En /tmp los permisos son correctos y en la carpeta definida en el
parametro
Post by Antonio Roncero
path del archivo de configuración también.
unoconv (0.6) y libreoffice (4.3.3.2) están instalados en el servidor.
Gracias
--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette
Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette
Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
Me gustaría saber como se solucionó este problema finalmente, estoy en la
misma situación al pretender imprimir directamente a pdf. Uso debian
jessie, gnuhealth3.0 tryton 3.8, instale python-uno y unoconv, unoconv se
encuentra en el path. Modifiqué el tipo de reporte vía interfaz de usuario
y al intentar imprimir me sale el mensaje que vemos en la imagen adjunta.

Si alguien paso por lo mismo y pudo solucionar por favor compartir.

Saludos
Sergi Almacellas Abellana
2016-11-10 15:59:04 UTC
Permalink
Me gustaría saber como se solucionó este problema finalmente, estoy en
la misma situación al pretender imprimir directamente a pdf. Uso debian
jessie, gnuhealth3.0 tryton 3.8, instale python-uno y unoconv, unoconv
se encuentra en el path. Modifiqué el tipo de reporte vía interfaz de
usuario y al intentar imprimir me sale el mensaje que vemos en la imagen
adjunta.
Hay una incidencia abierta [1] en el bug tracker de tryton que trata
precisamente de este tema, por lo que podéis hacer el seguimiento de la
mismo para estar informados del error.

Un saludo,

[1] https://bugs.tryton.org/issue5907
--
Sergi Almacellas Abellana
www.koolpi.com
Twitter: @pokoli_srk
Fernando Sánchez
2016-11-10 16:55:00 UTC
Permalink
Bueno seguí el consejo de maxime richez y desinstale unoconv que instalé con pip y lo reinstale desde apt-get junto con python3-uno

Solucionado.

Loading...