2009-08-27 14 views
3

reStructuredTextをMS Word文書のツールチェーンに構築しようとしていますので、rstのソースのみを保存できますバージョン管理。OpenOffice.orgの基本マクロを使用して* .odtファイルをMS Word * .docファイルにプログラムで変換します

これまでのところ私 -

OpenOffice.org WriterのフォーマットにreStructuredTextのを変換するrst2odt.pyを持っています。

次私は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の値を設定する必要があると思いますが、それを行う方法はわかりません。

私はそれを完全に後方に行っていますか?

P.S.私は自分の依存関係を最小化しようとするので、私はJODConverterをフォールバックとみなします。

答えて

0

OpenOffice/LibreOfficeがDOCフィルタを改善する場合、いつでもマクロをインストール/アップグレード/テストする必要がないため、JODConverter(代替)を使用することをお勧めします。それはかなりよく証明されています。

関連する問題