最近在使用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
sudo apt-get install sun-java6-jre sun-java6-jdk
openoffice
这个一般ubuntu都是默认安装好的。
openoffice-java-common
这个很重要,ubuntu中安装的oo不包括java开发库,所以要自己手动安装一下。不然编译的时候就会提示找不到类。
sudo apt-get install openoffice.org-java-common
make, g++, gcc, zip
这几个命令一般都是安装好的,如果没有,可以使用apt-get安装
2. 安装sdk
下载sdk
因为现在oo的最新稳定版是2.4,所以我们下载sdk 2.4, 下载地址, 根据自己的操作系统,选择不同的版本,这里我下载的是OOOOo-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,但是我一直没有运行成功。参考这里 和 JavaEclipseTuto">这里。
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
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交