第一步:下载安装OpenOffice
第二步:启动OpenOffice
window平台,Openoffice作为一个转换器来提供服务。
第一种启动方式:以服务方式来运行openoffice3。先安装OpenOffice3。用命令启动转换文件的服务如下cmd命令:
cd C:Program FilesOpenOffice.org 3program
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;"-nofirststartwizard
查看服务是否启动成功:netstat -anop tcp
第二种启动方式:把openoffice添加到系统服务里面。可以方便以后启动服务。第一步,下载并安装Window ResourceKit Tools。如安装到目录:C:Program Files。利用Srvany.exe创建一个服务,名字叫openoffice。打开cmd,输入如下命令:
"C:Program FilesWindows Resource KitsToolsinstsrv" openoffice"C:Program FilesWindows Resource KitsToolssrvany.exe"
其中,“C:Program FilesWindows ResourceKits“为你的安装路径。openoffice服务的名字。
这时在你的系统服务里面,多了一个服务
第二步,打开注册表找到
HKEY_LOCAL_MACHINE -> SYSTEM ->ControlSet001 ->Services->openoffice
新建项 Parameters
在该项下添加两个字符串值
key:Application
value:C:Program FilesOpenOffice.org 3programsoffice.exe
key:AppParameters
value:-invisible -headless-accept=socket,host=127.0.0.1,port=8100;urp;-nofirststartwizard
设置好了,以后就可以直接到服务里面启动服务了。可以直接运行,services.msc进入服务管理启动服务。
Linux平台,Openoffice作为一个转换器来提供服务
Linux和Unix创建服务相对简单, 但是由于soffice需要使用到Xwindow界面, 所以在做服务的时候, 由于在命令行状态,没有图形界面的支持, 所以需要使用Xvfb来设置一个虚拟的界面。
在soffice.bin目录创建一个ooService文件
# touch ooService
# vi ./ooService
将以下内容写入这个文件
#!/sbin/sh
case "$1" in
start)
DISPLAY=:5.0
export DISPLAY
/usr/openwin/bin/Xvfb :5 screen 1024x768x24 &
/usr/opt/openoffice.org2.2/program/soffice.bin -headless -display:5-accept="socket,host=0.0.0.0,port=8100;urp;" &
;;
stop)
pkill soffice
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0
注意:根据Xvfb的版本不一 , 进行调整参数即可:/usr/openwin/bin/Xvfb :5 screen1024x768x24 &
# chmod a+x ./ooService
在/etc/rc3.d 或者init.d里面创建一个文件 S90ooService
# touch S90ooService
# vi S90ooService
将里面的内容改成
#!/sbin/sh
/usr/opt/openoffice.org2.2/program/ooservice start
#chmod a+x ./S90ooService
第三步:配置测试
public class NomalToPDF {
// input 要转换文件的url,output:转换后的
public static void convertSTW(String input,String output) {
DocumentFormat swf = newDocumentFormat("OpenOffice.org 3.0 Template",
DocumentFamily.TEXT,"application/vnd.sun.xml.writer", "vsd");
DefaultDocumentFormatRegistryformatReg = new DefaultDocumentFormatRegistry();
DocumentFormat pdf =formatReg.getFormatByFileExtension("pdf");
File inputFile = newFile(input);
File outputFile = newFile(output);
// Bootstrap b = newBootstrap();
OpenOfficeConnection connection= new SocketOpenOfficeConnection("127.0.0.1", 8100);
try {
connection.connect();
DocumentConverterconverter = new OpenOfficeDocumentConverter(
connection);
converter.convert(inputFile,swf, outputFile, pdf);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
connection.disconnect();
connection= null;
} catch(Exception e) {
}
}
}
第四部action 调用
OpenOffice这工具很强大!哈哈神奇