最近在使用openoffice(以后简称oo)的sdk开oo的客户端,其实主要目的就是使用oo sdk编程实现读取各种格式的文档,包括MS的,oo自己的,从文件输入的,从clipboard输入的。
openoffice 开发指南,首推oo的官方
Developers_Guide,介绍的很全面,唯一的缺点就是太长了。可以当成手册来看。可以通过分析sdk中的例子,快速的掌握如何使用这个sdk。本文主要参考Developer's Guide中的第一章,以及sdk安装后的帮助手册。
使用ubuntu 8.04,搭建了oo的开发环境。
1. 安装一些必须的软件
- jdk,jre
- openoffice
- openoffice-java-common
- make, g++, gcc, zip
- 这几个命令一般都是安装好的,如果没有,可以使用apt-get安装
2. 安装sdk
- 下载sdk
- 因为现在oo的最新稳定版是2.4,所以我们下载sdk 2.4, 下载地址, 根据自己的操作系统,选择不同的版本,这里我下载的是OOo-SDK_2.4.0_LinuxIntel_install.sh
- 在ubuntu命令行下运行这个shell文件,在/var/tmp/unpack_openofficeorg/RPMS目录下得到一个openoffice.org-sdk-2.4.0-9286.i586.rpm文件。使用alien命令将rpm文件转为deb文件,然后安装这个deb文件。如果提示权限不够,请修改一下文件权限。
- sudo alien openoffice.org-sdk-2.4.0-9286.i586.rpm
- sudo dpkg -i openoffice.org-sdk-2.4.0-9286.i586.deb
- 设置环境变量
- sdk安装地址是/opt/openoffice.org2.4_sdk,进入这个目录
- 运行./setsdkenv_unix
- 填写相应参数,其中officehome,填写/usr/lib/openoffice,java jdk目录是/usr/lib/jvm/java-6-sun,其他基本都是默认值
- 完成之后,会在~/usrname/openoffice.org2.4_sdk下生成环境变了设置脚本,每次编译oo程序前,运行source ~/openoffice.org2.4_sdk/setsdkenv_unix.sh就可以了。
- 安装完成之后,请认真阅读/opt/openoffice.org2.4_sdk/index.html中的内容。
3. 运行sdk中的例子
- 打开终端,设置环境变了source ~/openoffice.org2.4_sdk/setsdkenv_unix.sh
- 进入sdk的example目录,cd /opt/openoffice.org2.4_sdk/example/java/目录,这个目录里面有很多种类的例子,比如我们进入Text目录
- 到Text目录下,运行make命令,就会自动编译所有程序。目标程序存放地址也会显示出来。
- 根据提示,可以运行make *****.run 命令,启动相应的example程序。或者,到输入目录下,运行 java -jar ****.jar
- 通过阅读exmaple代码,可以快速的学会如何使用oo api, api的文档在/opt/openoffice.org2.4_sdk/docs中,其中
- common是通用文档,这里面可以找到大部分的使用方法,以后多多查阅
- java,是java专用的api
4. 安装netbeans作为openoffice开发ide
主要参考
使用netbeans开发openoffice程序,使用netbeans提供的openoffice插件。
只是要注意
- 配置路径的时候,openoffice路径是/usr/lib/openoffice,openoffice sdk路径是/opt/openoffice.org2.4_sdk
- 建立工程之后,运行,会提示“no executable openoffice",解决方法是在工程的library中加入/usr/lib/openoffice/program
也可以使用eclipse,但是我一直没有运行成功。参考
这里 和
这里。
5. 存在的问题
- oo编写的程序,需要一个可以运行的oo才可以执行,这个oo可以是本地的,也可以是远程的。就是相当于一个服务器。那么,这样如何在软件的发行版中加入一个完成的oo?也许说明,这个软件要依赖于一个完成的oo,所以请用户提前安装?
- 在netbeans下开发的oo程序,打包为jar文件之后,不能正常运行。解决方法有两个
- 通过分析例子的编译脚本/opt/settings/std.mk文件,发现打包后的jar中多了一些文件,包括win/unowinreg.dll,/com/sun/star/lib/loader/下的一些类。这些类估计是寻找oo程序的。只需要在jar中添加这些文件,就可以正常运行了。
- 参考这个页面 , 使用一个库来连接oo
6. 有用的网页
- 保存文件的操作
- 文件另存为/转换的操作
- 操作粘贴版的操作
- 使用open office入门级实例程序