在文档的转换过程中需要使用的到OpenOffice.org 软件,使用openoffice 的converter方法把文档转换成pdf格式。在这里来了解一下OpenOffice.org 软件。
OpenOffice.org 简介:
OpenOffice.org 是一套跨平台的办公室软件套件,能在
Windows、Linux、MacOS X (X11)、和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice.org 是自由软件,任何人都可以免费下载、使用、及推广它。
现在的最新版本为OpenOffice.org3.4,下载地址为:http://www.openoffice.org/download/。
本文用到的是OpenOffice2.2.2版本下载地址:http://www.skycn.com/soft/3251.html
OpenOffice的使用 :
在调用OpenOffice.org的converter的方法之前,我们必须开启OpenOffice 的服务器,这个主要讲三种开启服务的方法,第一种:以命令方式开启openoffice的服务,第二种: 系统开启 openoffice的服务。 第三种:通过java代码开启或者关闭openoffice服务
第一种: 以命令的方式开启openoffice的服务
在cmd命令下,cd opeonofiice的安装路径/program 如:cd c:\program files\openoffice.org 3\program soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
第二种 :系统开启openoffice的服务
在系统开启openoffice的服务我们还需要一个Windows Resource Kit tools ,将openoffice server设为系统服务。Windows Resource Kit tools 是微软专为管理人员、开发人员和高级用户开发的,包括管理活动目录、组策略、TCP/IP网络、注册表、系统安全、监测等涉及Windows
Server 2003 操作系统的其它很多方面的非常规安装的工具组件。Resource Kit Tools for XP的发布使得XP用户也能使用Resource Kit Tools对这些问题进行处理。
下载windows resource kit tools,我们进行默认安装。
1.打开Windows Resource Kit Tools
在Command Shell执行以下命令:
"C:\Program Files\Windows Resource Kits\Tools\instsrv" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
打开 管理工具->服务 可以找到以 OpenOfficeUnoServer 命名的服务
2.打开注册表寻找以下路径
HKEY_LOCAL_MACHINE -> SYSTEM ->ControlSet001 ->Services ->OpenOfficeUnoServer
新建项 Parameters,在该项下添加两个字符串值:
key:Application
value:C:\Program Files\OpenOffice.org 3\program\soffice.exe
key:AppParameters
value:-invisible -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard
3.在服务控制台,启动 openoffice 服务
4.在CMD中用以下命令查看8100是否已被监听:netstat -anop tcp
这样OpenOffice3.0就以服务方式运行在Windows系统上了。(使用cmd命令:netstat -anp tcp查看8100端口是否工作)
然後可以通过socket方式连接openOffice,以使用openoffice提供的某些服务,如文件转换服务,ms office转pdf等等。
开源项目 JODConverter 就是结合openoffice来进行文档转换的java组件。
另外有一个命令行工具swftools,该工具可以将pdf转换为swf格式的文档,提供给ie客戶端流览。
另外,我们可以将该配置用bat文件来快速实现,运行前请先修改相应目录参数:
openoffice service.bat文件
"C:\Program Files\Windows Resource Kits\Tools\instsrv" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters /ve /d
reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters /v Application /t REG_SZ /d "C:\Program Files\OpenOffice.org 3\program\soffice.exe"
reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters /v AppParameters /t REG_SZ /d "-invisible -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard"
关于这两种的方法我都是从网上搜集到的,在使用的过程中经常无法正常的启用。或许因为我看到有个dos和系统的注册表就晕的问题了。可是总体来说在文档的转换过程之前我们必须开启OpenOpenoffice的服务,不然无法进行正常的转换,会在控制台报出让人反感的异常。这样看起来很麻烦,个人不太喜欢这个方式,所以有了第三种方案。通过java代码开启服务,这个方法主要是在进行转换文档时自动开启OpenOpenoffice的服务,转换完成后自动关闭。虽然这样或许有些问题,可是个人感觉比较实用点。
第三种方案: java代码开启服务
java代码开启服务主要的是在转换文档的过程中每次转换之前先进行startserveice ,执行转换,stopservice。主要的代码如下 :
public static void startService() {
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
try {
System.out.println("准备启动服务....");
configuration.setOfficeHome(OFFICE_HOME);// 设置OpenOffice.org安装目录
configuration.setPortNumbers(port); // 设置转换端口,默认为8100
configuration.setTaskExecutionTimeout(1000 * 60 * 5L);// 设置任务执行超时为5分钟
configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);// 设置任务队列超时为24小时
officeManager = configuration.buildOfficeManager();
officeManager.start(); // 启动服务
System.out.println("office转换服务启动成功!");
} catch (Exception ce) {
System.out.println("office转换服务启动失败!详细信息:" + ce);
}
}
// 关闭服务器
public static void stopService() {
System.out.println("关闭office转换服务....");
if (officeManager != null) {
officeManager.stop();
}
System.out.println("关闭office转换成功!");
}
分享到:
相关推荐
仿百度文库解决方案(四)——利用JODConverter调用OpenOffice.org服务转换文档为PDF 仿百度文库解决方案(五)——利用SWFTools转换PDF文档为SWF 仿百度文库解决方案(六)——利用FlexPaper显示Flash(SWF)
仿百度文库方案[openoffice.org 3+swftools+flexpaper]对于不会写的菜鸟可以在几分钟内入门,里面有现成的代码,并且有详细流程。内附完整完美安装包,让你不虚费力去四处寻找。(openoffice安装包过大这里我会给出...
仿百度文库demo(openoffice+swfTools+FlexPaper)
本工程为MyEclipse中的java web工程,它用于演示如何借助OpenOffice、FlexPaper和SWFTools 实现仿百度文库的功能。 本工程编码方式:UTF-8 对conf.properties文件的说明: #OpenOffice的安装根目录 OpenOffice_...
鉴于网上找的在线浏览都略去了flexpaper ,于是自己花费几个小时完成了openOffice + swfTools + flexpaper 技术实现仿百度文库的在线浏览。功能已经实现,需要的自己下去优化一下,修改下openoffice和SWFTOOLS安装...
本系统参考百度文库和豆丁网等网站实现的在线文档库系统,主要提供了一种功能,即在线查看doc、xls、ppt等office格式文档;用户上传的文档无需下载就可以在线查看了,同时用户本地无需安装office软件,真的是非常...
采用java实现仿百度文库、豆丁在线阅读,有详细的代码并列出了所用到的jar包,采用openoffice+jodconverter+swftools
java仿百度文库、豆丁在线阅读,流程如下:Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>FlexPaper浏览,本人用过,很好用
仿百度文库使用java实现在页面上进行office类文件的浏览。 非本人编写的代码,但可以使用。 包含两个资源,需要下载OpenOffice和swftools工具,修改代码中的相关路径。 实现方法是:1、word转换为pdf;2、pdf转换为...
JAVA+FlexPaper+swfTools仿文库文档在线阅读 java将office文档pdf文档转换成swf文件在线预览 通过openoffice +swftools+ flexpaper工具
Apache_OpenOffice_4.1.15_Win_x86_install_zh-CN.exe
仿百度文库所有JAR包,采用了exec执行openoffice和SWFTools命令方式先把上传文件转成PDF,通过SWFTools把PDF转成SWF格式展示。
在他人基础上实现java实现仿百度文库预览文档功能, Txt/Word/Excel/PPT => PDF(OpenOffice+JodConverter) => SWF(pdf2swf)=>FlexPaper浏览。 包含了源代码,文档,部分较小文件的安装文件,部分较大文件的下载...
上传到管理系统的文档(包括ppt,word,excel,txt)只能预览不允许下载,仿百度文库和豆丁网的在线预览都是利用flash来播放,本实例去除了所有无关的东东,只保存了其必须的相关文件,可以说做到了仿百度文库的最简化...
仿百科文库(Flex+openoffice+swftools等) QQ 1211058129
Docker 化的 OpenOffice介绍在 docker 容器中运行 OpenOffice? 惊人的 :thumbs_up: 来自 Docker 索引docker pull bjwolf/ dockerized-openoffice:v1 或建立自己git 克隆 docker build --rm -t bjwolf/ dockerized-...
在线预览word,ppt,excel,text,PDF,SWF文件,类似百度文库效果 java实现访百度文库、道客巴巴、豆丁阅读,windows系统下实现仿百度文库效果,使文档只能浏览,保护文档的下载。 经本人测试,在线预览效果还不错 真正实现...
PHPExcel_1.7.8-with_documentation-openoffice_format,php导出excel
OpenOffice