Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Problemas integração Python com OpenOffice.org (Python-UNO b
15/05/2007, 14:22
Resposta: #1
Problemas integração Python com OpenOffice.org (Python-UNO b
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.ComponentContext")
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.ComponentContext")

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]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
08/06/2008, 12:53
Resposta: #2
 
Olá, se entendi bem vc quer converter um documento aberto no openoffice em documento pdf, mas está tentando implantar uma rotina em python que faz isso?? Bom só se for para fins educacionais ou para teste de programação porque essa função já existe embutida no openoffice, na barra de ferramentas existe o icone para exportar o documento aberto em pdf ou pelo menu arquivo tb existe a opção. Acredito que essa opção exista antes mesmo da versão 2.0.

"Na caixa dizia: Requer MS Windows ou superior, então eu instalei Debian/GNU
Linux!"

.
Antes de postar use a busca e veja o Wiki.
Busca do FD
Wiki do FD
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS