Я выполнил скрипт python, используя pyuno, который успешно преобразовал документ / xls / rtf и т. Д. В PDF.
Затем мне нужно было обновить базу данных mssql, так как открытый офис, в настоящее время поддерживающий python 2.3, является устаревшим, не поддерживает приличных библиотек базы данных. Поэтому я прибег к использованию Jython, поэтому я не перегружен работой внутри среды Python OO с использованием старого pyuno.
Это также означает, что мой код преобразования не работает, и теперь мне нужно использовать библиотеки java вместо библиотек pyuno.
import com.sun.star.beans.PropertyValue as PropertyValue
импортировать com.sun.star.bridge.XUnoUrlResolver как XUnoUrlResolver
import com.sun.star.comp.helper.Bootstrap as 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'. Вот те библиотеки, которые я включил.
альтернативный текст 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
// также, что эквивалентно url = uno.systemPathToFileUrl (file) в Java, так что я могу использовать его для удобного форматирования моего пути
свойства = []
p = PropertyValue ()
p.Name = "Hidden"
p.Value = True
properties.append (р)
свойства = кортеж (свойства)
doc = xcomponentloader.loadComponentFromURL (файл, "_blank", 0, свойства)