2008-11-05 70 views
2

我使用pyuno成功地將文檔/ xls/rtf等轉換爲pdf格式,完成了python腳本。 然後,我需要更新一個mssql數據庫,由於開放式辦公軟件目前支持python 2.3,這是古老的,缺乏對體面的數據庫庫的支持。所以我使用了Jython,這種方式不會因使用舊的pyuno在OO python環境中運行而負擔沉重。使用jython和開放式辦公室2.4將文檔轉換爲pdf

這也意味着我的轉換代碼被破壞了,我現在需要使用java庫而不是pyuno庫。

進口com.sun.star.beans.PropertyValue爲
的PropertyValue進口 作爲com.sun.star.bridge.XUnoUrlResolver XUnoUrlResolver
進口com.sun.star.comp.helper.Bootstrap作爲引導
- >>進口com.sun.star.frame.XComponentLoader作爲XComponentLoader
- >>進口com.sun.star.frame.XStorable中作爲XStorable
進口com.sun.star.lang.XMultiComponentFactory作爲XMultiComponentFactory
進口玉米作爲UnoRuntime的.sun.star.uno.UnoRuntime
進口com.sun.star.uno.XComponentContext作爲XComponentContext

將與包括「 - >>」不導入編譯器無法識別的com.sun.star.frame不能看到的「框架」位。這些是我已經包含的庫。

alt text http://www.freeimagehosting.net/uploads/eda5cda76d.jpg

在這個問題上的一些意見,將深受

背景= XComponentContext
xMultiCompFactory = XMultiComponentFactory
xcomponentloader = XComponentLoader

//在Python中
CTX =無
SMGR =無
DOC =無
URL =無

上下文= Bootstrap.bootstrap()
xMultiCompFactory = self.context.getServiceManager()
xcomponentloader = UnoRuntime.queryInterface(XComponentLoader.class,... .xMultiCompFactory.createInstanceWithContext( 「com.sun.star.frame.Desktop」,上下文))

文件= 「文件:\\」 +文件
//也什麼是URL = uno.systemPathToFileUrl相當於(文件),以便我可以使用它來很好地格式化我的路徑
個 屬性= []
P =的PropertyValue()
p.Name = 「隱藏」
p.Value =真
properties.append(P)
屬性=元組(屬性)
DOC = xcomponentloader 。loadComponentFromURL(file,「_blank」,0,properties)

回答

0

使用Jython對我來說是一個好主意。但爲什麼你不能使用兩個腳本,一個使用pyuno/2.3,另一個使用pymssql/2.5(或者你使用的任何數據庫適配器)?

中間格式可以是任何類似pickle,json或XML的東西。

編輯:我應該補充說,我已經使用pyuno相當廣泛,我感到你的痛苦。

+0

好主意!但是因爲寫Java的公司政策!偷偷摸摸的Python有點狡猾,我說的是:我在JVM上運行它,還有什麼可以的!? *傻笑*然後發誓導致工作沒有像應該那樣順利,對我來說服其他人說python確實是要認真看待的東西 – Setori 2008-11-05 15:21:06

+0

因此,所有你開心的黑客python jython人!我希望得到答案!不知道開放辦公室的人會打敗你!? – Setori 2008-11-05 15:22:21

相關問題