C++解析word(docx)探索(⼀)LibreOfficeSDK开发配置
最近做项⽬要⽤操作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"在⽤户⽬录下运⾏。sdk
之后就可以编译例⼦了,在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());了很久才在这篇⽂章
blog.csdn/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…

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。