reStructuredText to MS Wordドキュメントツールチェーンを構築しようとしているので、バージョン管理で最初のソースのみを保存できます。
これまでのところ私は-
rst2odt.pyを使用して、reStructuredTextをOpenOffice.orgWriter形式に変換します。
次に、Word 97/2000 / XPドキュメントを生成するかなり適切な作業を行う最新のOpenOffice.org(現在は3.1)を使用したいので、マクロを作成しました。
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
ますが、その方法がわかりません。
それとも私は完全に逆行しているのでしょうか?
PS依存関係を最小限に抑えようとしているため、JODConverterをフォールバックと見なします。