OpenOffice SDKを使用したドキュメント変換
-
06-07-2019 - |
質問
ユーザーが.docファイル(アップロードするファイル)をさまざまな形式にエクスポートできるようにする必要があります。 OO SDKの使用を開始し、XSLTを使用していくつかのカスタムフィルターを設定しました。すべてがうまく機能し、WordドキュメントをPDFなどにエクスポートできます。
ただし、これをWebサービスとして実行したい。この変換サービスを専用ノードで実行したいので、ドキュメントを変換したいユーザーによるすべてのファイルアップロードは、この専用ノードに到達します。私のWebアプリ自体はPHPベースです。 OO SDKを使用して変換を実行する最良の方法は何ですか?結果のファイルもDBに保存する必要があります。
OOの複数のインスタンスを実行し、特定のインスタンスに変換する各ファイルをフィードする必要がありますか?そして、OOがマルチスレッドかどうかわからないので、これを処理するカスタムサーバーを作成する必要がありますか。アドバイスをいただければ幸いです。
解決
JODConverter の使用を検討しましたか?それはあなたのためにすべての重荷を持ち上げます。
他のヒント
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);
}
エクスポートするfilternamesの完全なリストについては、私が以前に与えた別の答えを調べます。
所属していません StackOverflow