■99623 / inTopicNo.5) |
Re[4]: C#でOpenOfficeの印刷プレビューを開く方法 |
□投稿者/ 河童 (3回)-(2022/05/06(Fri) 19:12:48)
|
■No99621 (Hongliang さん) に返信
> https://ask.libreoffice.org/t/how-to-call-from-c-a-basic-macro-defined-in-a-calc-document/33390/
参考にしました。
ビルド時にエラーはなくなりましたが、OpenOfficeが開いた後にエラーが発生します。
unoidl.com.sun.star.task.ErrorCodeIOException
Server stack trace;
//コンポーネントコンテキストオブジェクト取得(OpenOfficeの基本プロセスらしい)
XComponentContext context = Bootstrap.bootstrap();
//サービスマネージャ取得
XMultiServiceFactory factory = (XMultiServiceFactory)context.getServiceManager();
//コンポーネントローダオブジェクト取得
XComponentLoader loader = (XComponentLoader)factory.createInstance("com.sun.star.frame.Desktop");
//ファイルを開きドキュメントオブジェクトを生成
string docFile = "file:///" + xlPath;
//印刷プレビューを開きたい
XComponent component = loader.loadComponentFromURL(docFile, "nom_fic", 0, new PropertyValue[0]);
XSpreadsheetDocument document = (XSpreadsheetDocument)component;
XSpreadsheets feuilles = document.getSheets();
XStorable doc = (XStorable)document;
doc.storeAsURL(docFile, new unoidl.com.sun.star.beans.PropertyValue[0]);
XModel controller = (XModel)component;
XFrame frame = controller.getCurrentController().getFrame();
XDispatchHelper dispatch_helper = (XDispatchHelper)factory.createInstance("com.sun.star.frame.DispatchHelper");
dispatch_helper.executeDispatch((XDispatchProvider)frame, ".uno:PrintPreview", "", 0, new unoidl.com.sun.star.beans.PropertyValue[0]);
|
|