libreoffice API 开发(三):创建保存一个swriter文档

来源:互联网 发布:node 模块开发 编辑:程序博客网 时间:2024/05/17 21:52

    UNO是通用网络对象的简称,是libreoffice的基本组件技术。通过UNO我们可以在不同的平台上利用UNO进行编程。

    要利用UNO进行编程,需要按照如下的步骤进行:

    1.建立本地组件上下文。

    2.获取本地servicemanager。

    3.通过本地servicemanager获得特定类型的抽象接口。

    4.通过抽象接口查询到具体的接口。

     好了,介绍到此为止。

     因为只是初步学习,所以先把代码的架子搭起来,以后需要深入研究的话,再来深入讨论其理论。

     下面是一个创建swriter文档的代码,只要头文件什么的没有少包含,完全可以使用。

     

Reference < XComponent > newDocument(){    try    {        Reference<XComponentContext>      xContext;          Reference<XMultiComponentFactory> xMSFactory;          Reference<XComponent>             xDocument;                 xContext = bootstrap();                xMSFactory = xContext->getServiceManager();                 Reference<XInterface> desktop = xMSFactory->createInstanceWithContext(              OUString::createFromAscii("com.sun.star.frame.Desktop"),              xContext );          Reference<XComponentLoader> rComponentLoader( desktop, UNO_QUERY_THROW );                 Sequence<PropertyValue> loadProps(1);          loadProps[0].Name = OUString::createFromAscii("Hidden");          loadProps[0].Value = Any(false);//new Boolean(true);                 xDocument = rComponentLoader->loadComponentFromURL(              OUString::createFromAscii("private:factory/swriter"),              OUString::createFromAscii("_blank"),              0,              loadProps);           return xDocument;             }    catch (Exception & e)    {        std::cout<<e.Message<<std::endl;        return NULL;    }}

     接下来是保存swriter文件的代码:

     时间有点久了,关于这块的代码手里没有了,有时间再补一份。

0 0
原创粉丝点击