1

ユーザーが (アップロードした) .doc ファイルをさまざまな形式にエクスポートできるようにする必要があります。OO SDK の使用を開始し、XSLT を使用していくつかのカスタム フィルターをセットアップしました。すべてが正常に機能し、Word ドキュメントを PDF などにエクスポートできます。

ただし、これを Web サービスとして実行したいと考えています。この変換サービスを専用ノードで実行したいので、ドキュメントを変換したいユーザーによるすべてのファイルのアップロードは、この専用ノードに到達します。私の Web アプリ自体は PHP ベースです。OO SDK を使用して変換を実行する最良の方法は何ですか? 結果のファイルもDBに保存する必要があります。

OO の複数のインスタンスを実行し、各ファイルをフィードして特定のインスタンスに変換する必要がありますか? また、OO がマルチスレッド化されているかどうかわからないので、これを処理するためにカスタム サーバーを作成する必要がありますか。アドバイスをいただければ幸いです。

4

2 に答える 2

4

cli dllを使用して、次のコードを試してください

public conversion()
{
        unoidl.com.sun.star.uno.XComponentContext localContext =uno.util.Bootstrap.bootstrap();

        unoidl.com.sun.star.lang.XMultiServiceFactory multiServiceFactory =(unoidl.com.sun.star.lang.XMultiServiceFactory)localContext.getServiceManager();

        XComponentLoader componentLoader =(XComponentLoader)multiServiceFactory.createInstance("com.sun.star.frame.Desktop");

        XComponent xComponent = componentLoader.loadComponentFromURL(PathConverter(FileName1),"_blank", 0,new PropertyValue[] {MakePropertyValue("Hidden", true)});

        unoidl.com.sun.star.beans.PropertyValue [] propertyValues;
        propertyValues = new unoidl.com.sun.star.beans.PropertyValue[2];
        // Setting the flag for overwriting
        propertyValues[0] = new unoidl.com.sun.star.beans.PropertyValue();
        propertyValues[0].Name = "Overwrite";
        propertyValues[0].Value = new Any(true);
        // Setting the filter name
        propertyValues[1] = MakePropertyValue("FilterName", "HTML (StarWriter)");
        /*propertyValues[1] = new unoidl.com.sun.star.beans.PropertyValue();
        propertyValues[1].Name = "FilterName";
        propertyValues[1].Value = new uno.Any("HTML (StarWriter)"); // writer_pdf_Export  ,  swriter: MS Word 97 , HTML (StarWriter) ,*/

        XStorable xStorable = xComponent as XStorable;xStorable.storeToURL(PathConverter(FileName),propertyValues);
}

エクスポートするフィルター名の完全なリストについては、前に示した別の回答を調べてください。

于 2009-07-28T17:18:20.470 に答える