使用jython和open office 2.4将docs转换为pdf

时间:2008-11-05 07:17:32

标签: python jython openoffice.org

我使用pyuno完成了一个python脚本,该脚本成功地将文档/ xls / rtf等转换为pdf。 然后我需要更新一个mssql数据库,因为当前支持python 2.3的开放式办公室,它的古老性,缺乏对体面数据库库的支持。所以我已经使用了Jython,这样我就不会因为使用旧的pyuno在OO python环境中运行而负担沉重。

这也意味着我的转换代码被破坏了,我现在需要使用java库而不是pyuno libs。

  

将com.sun.star.beans.PropertyValue导入为PropertyValue
  将com.sun.star.bridge.XUnoUrlResolver导入为XUnoUrlResolver
  将com.sun.star.comp.helper.Bootstrap导入为Bootstrap
   - >>将com.sun.star.frame.XComponentLoader导入为XComponentLoader
   - >>将com.sun.star.frame.XStorable导入为XStorable
  将com.sun.star.lang.XMultiComponentFactory导入为XMultiComponentFactory
  将com.sun.star.uno.UnoRuntime导入为UnoRuntime
  将com.sun.star.uno.XComponentContext导入为XComponentContext

包含' - >>'不导入编译器无法识别com.sun.star.frame看不到'frame'位。这些是我所包含的库。

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

关于这个问题的一些建议会很受欢迎

  

context = XComponentContext
  xMultiCompFactory = XMultiComponentFactory
  xcomponentloader = XComponentLoader

     

//在python中使用
  ctx =无
  smgr =无
  doc =无
  url =无

     

context = Bootstrap.bootstrap()
  xMultiCompFactory = self.context.getServiceManager()
  xcomponentloader = UnoRuntime.queryInterface(XComponentLoader.class,.... xMultiCompFactory.createInstanceWithContext(“com.sun.star.frame.Desktop”,context))

     

file =“file:\\”+ file
  //也是Java中url = uno.systemPathToFileUrl(file)的等价物,以便我可以利用它来很好地格式化我的路径
  properties = []
  p = PropertyValue()
  p.Name =“隐藏”
  p.Value =真
  properties.append(P)
  properties =元组(属性)
  doc = xcomponentloader.loadComponentFromURL(file,“_ blank”,0,properties)

2 个答案:

答案 0 :(得分:1)

根据这个家伙的说法,你需要一些油......它就像一个魅力

http://www.oooforum.org/forum/viewtopic.phtml?p=304263#304263

包含此lib C:\ OpenOffice_24 \ program \ classes \ unoil.jar

答案 1 :(得分:0)

我认为使用Jython是个好主意。但是为什么你不能使用两个脚本,一个使用pyuno / 2.3,另一个使用pymssql / 2.5(或者你正在使用的数据库适配器)?。

中间格式可以是pickle,json或XML。

编辑:我应该补充一点,我已经广泛使用了pyuno,我感到很痛苦。