C++解析word(docx)探索(一)LibreOffice SDK开发配置

2 篇文章 0 订阅
1 篇文章 0 订阅

最近做项目要用操作word,之前用Qt + MSOffice的ocx这套方案,但是新的需求需要做些同步处理,且后期需要避开MSOffice在Linux上用。所以最近在探索C++解析docx 。
最开始发现两个呼声较高的开源软件LibOffice和openOffice在Ubuntu下替代MSOffice,傻傻的准备看下源码学习学习,下了个LibreOffice的exe和源码,下下来软件觉得还不错,软件也不算大,好感倍增,打开Sourceinsight看下源码,不知道从何看起,工程是真的大,嚼了半天,一点也没看懂,看看官方有一个文章说模块的划分,但是也没有过呢更详细的介绍,之后就放弃看源码了,看见有SDK,就准备下载SDKj进行开发。
下面介绍LibreOffice SDK开发配置

  • 下载最新版软件LibreOffice6.2软件和SDK,先下载exe后安装SDK会默认安装在exe目录下
  • 进入SDK目录下载,点击index.html查看官方说明,点击Installation Guide,看下安装说明
    在这里插入图片描述
  • C++编译器安装VS2010或更高的版本,安装Mingw-make的GUN编译器,安装zip tool 工具,安装cat and sed tools,VS和make工具不说了官网下,另外三个zip,cat,sed,我上传了点击下载
  • 命令行进入进入SDK目录下,运行setsdkenv_windows.bat,设置这些工具的目录,设置完成路径下图参考:(因为在做Qt开发VS和make都不用下载)
    在这里插入图片描述
  • 安装完成"C:\Users\xin1_tp\AppData\Roaming\libreoffice6.2_sdk\setsdkenv_windows.bat"在用户目录下运行。
  • 之后就可以编译例子了,在shell for sdk下进入sdk\examples\cpp\DocumentLoader目录下,输入mingw32-make命令,我这边出现报错sdk\settings\settings.mk下出现错误,第22行报错include $(OO_SDK_HOME)/settings/dk.mk 找不到,我们把它换成绝对路径include D:/LibreOffice6.3/sdk/settings/dk.mk,再次mingw32-make,编译成功
  • 编译成功后会在配置的输出目录下D:\libreoffice6.2_sdk生成WINexample.out,然后inc目录考到sdk下重命名未includecpp,这个就是坑爹的C++头文件,需要自己生成的。
  • 配置VS输入命令参数URE_MORE_TYPES=“file:///D:/LibreOffice6.3/program/types.rdb” “file:///D:/LibreOffice6.3/sdk/examples/cpp/DocumentLoader/test.odt”
    添加包含目录sdk\include和刚才的includecpp,添加库目录\sdk\lib,在连接器输入依赖项isal.lib,isalhelper.lib,icppu.lib,icppuhelper.lib.配置完成。
  • 下面编译出现大坑了,debug下总会崩在Reference< XComponentContext > xComponentContext(::cppu::defaultBootstrap_InitialComponentContext());找了很久才在这篇文章https://blog.csdn.net/coovig/article/details/50340379中找到和我出现相同问题的人,把生成 的exe拷到LibreOffice6.3\program目录下,正常运行。
    我试了下将LibreOffice6.3\program加到环境变量 path中去,还是不行,果然我用的VS2015,没有试vs2008不过可能是对的。官方这句话是真的坑Windows Microsoft C++ Compiler, Microsoft Visual Studio 2010 or later, or the Express edition thereof。。

暂时先不决定使用这个Libreoffice…

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值