Я пытаюсь построить reStructuredText для инструментальной цепочки документов Word Word, поэтому я смогу сохранить только rst источников в контроль версий.Программно конвертировать * .odt файл в файл MS Word * .doc с использованием базового макроса OpenOffice.org
До сих пор я -
Есть rst2odt.py преобразовать ReStructuredText в формат OpenOffice.org Writer.
Далее я хочу использовать самые последние OpenOffice.org (в настоящее время 3,1), что сделать довольно приличную работу генерации Word 97/2000/XP документ, так что я написал макрос:
sub ConvertToWord(file as string)
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim odf(1) as new com.sun.star.beans.PropertyValue
odf(0).Name = "URL"
odf(0).Value = "file://" + file + ".odt"
odf(1).Name = "FilterName"
odf(1).Value = "MS Word 97"
dispatcher.executeDispatch(document, ".uno:Open", "", 0, odf())
rem ----------------------------------------------------------------------
dim doc(1) as new com.sun.star.beans.PropertyValue
doc(0).Name = "URL"
doc(0).Value = "file://" + file + ".doc"
doc(1).Name = "FilterName"
doc(1).Value = "MS Word 97"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, doc())
end sub
Но когда я его выполнения:
soffice "macro:///Standard.Module1.ConvertToWord(/path/to/odt_file_wo_ext)"
я получаю: «BASIC ошибка выполнения Свойство или метод не найден.». сообщение на линии:
document = ThisComponent.CurrentController.Frame
И когда я комментирую эту линию, выше вызов полностью без ошибок, но ничего не делают. Думаю, мне нужно как-то установить значение document
только что созданному экземпляру, но я не знаю, как это сделать.
Или я нахожусь на нем совершенно назад?
P.S. Я рассмотрю JODConverter как резерв, потому что я пытаюсь минимизировать свои зависимости.