Patrick,

Antes de rodar na configuração final, tente isolar o problema.
Execute o script numa máquina Linux+OOo. Se tudo ok, verifique as
configurações do servidor (porta, direitos, xvfb, etc).

Boa sorte.
Noelson

----- Original Message ----- 
From: "Patrick Espake" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, May 15, 2007 2:09 PM
Subject: [dev] Problemas integração Python com OpenOffice.org (Python-UNO
bridge)-converter odt2pdf


Problemas integração Python com OpenOffice.org (Python-UNO bridge)-converter
odt2pdf

Estou tendo problemas para integrar o Python com OpenOffice.org, estou
desenvolvendo uma aplicação em Python que utiliza algumas API's do
OpenOffice.org para converter um documento .ODT em PDF. Consegui fazer
funcionar perfeitamente em ambiente Windows, mas no Linux não funciona de
jeito nenhum. Instale no Linux o OpenOffice.org completo, inclusive com o
pacote de componentes Python-UNO bridge.

No Linux estou fazendo os seguintes passos:

Xvfb -screen scrn 800x600x16 :25 &

soffice
-accept="socket,host=localhost,port=2002;urp;OpenOffice.ServiceManager"
-norestore -headless -invisible -display :25&

Estou rodando essa aplicação em um servidor, dessa forma preciso usar o
Xvfb. O Xvfb ("X Virtual Frame Buffer") é um servidor X que é capaz de rodar
em máquinas sem hardware de apresentação e sem dispositivos físicos de
entrada de dados. O Xvfb emula um "framebuffer burro" utilizando memória
virtual. O Xvfb não abre nenhum dispositivo mas se comporta como uma tela X.


Após executar o comando acima no terminal, eu entro na pasta de instalação
do OpenOffice.org

cd /opt/openoffice.org2.2/program

Nesta pasta program eu criei um arquivo em Python chamando oo.py, esse
arquivo que realiza a transformação de um arquivo .ODT em PDF.

Dentro da pasta program eu chamo o arquivo oo.py, para realizar a
transformação.

python oo.py

ou

./python.sh oo.py

Ambas as linhas acima executadas no terminal, retornam a mensagem de erro
abaixo:

[EMAIL PROTECTED] program]# python oo.py
Traceback (most recent call last):
  File "oo.py", line 13, in ?

ctx=resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.Com
ponentContext")

uno.com.sun.star.uno.RuntimeException: URP-Bridge: disposed(tid=3)
Unexpected connection closure

Não estou entendo por que está dando Unexpected connection
closure(Fechamento da conexão inesperado)

Pelo o que eu entendi o OpenOffice.org está fechando, assim que é
requisitado a sua aplicação pelo python, usando as API's do OpenOffice.org.

Algúem sabe como resolver isso? Se alguém souber como resolver isso fico
eternamente agradecido.

Segue abaixo o código fonte do oo.py:
import uno,os
from com.sun.star.beans import PropertyValue

properties = []
p=PropertyValue()
p.Name = "Hidden"
p.Value = True
properties.append(p)

context = uno.getComponentContext()
resolver=context.ServiceManager.createInstanceWithContext ("
com.sun.star.bridge.UnoUrlResolver", context)

ctx=resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.Com
ponentContext")


smgr = ctx.ServiceManager

desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop",ctx)
doc=desktop.loadComponentFromURL(' file:///var/www/html/pdf/meuarquivo.odt',
"_blank", 0, tuple(properties))

properties=[]
p=PropertyValue()
p.Name="Overwrite"
p.Value=True
properties.append(p)
p=PropertyValue()
p.Name="FilterName"
p.Value='writer_pdf_Export '
properties.append(p)
p=PropertyValue()
p.Name="Hidden"
p.Value=True

try:

doc.storeToURL(uno.systemPathToFileUrl('/var/www/html/pdf/meuarquivo.pdf'),
tuple(properties))
except:
    print "ERROR"

doc.dispose()

Outras informações:
Versão do Linux: RED HAT
Linux servidor 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686
i386 GNU/Linux

Versão do OpenOffice.org: OOo_2.2.0_LinuxIntel_install_wJRE_en-US.tar.gz

Versão do Python: Python 2.3

Obrigado.
Patrick Espake
[EMAIL PROTECTED]



----------------------------------------------------------------------------
----


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.467 / Virus Database: 269.7.1/805 - Release Date: 15/5/2007
10:47

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Responder a