序 jodconverter 4.1.0版本的话,改进了api的结构,同时新增了local以及online的模块,本文就来分析一下。 maven <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-spring-boot-starter </artifactId> <version>4.1.0</version> </dependency> 依赖变化 新版的话,对原来的jodconverter-core 进行了抽离,将对libreoffice相关jar包的依赖从core模块中抽取出来,抽到jodconverter-local模块当中。 另外也新增了jodconverter-online模块,以支持libreoffice online server的远程调用。
举例来说,你可以把openoffice.og变成一个转换引擎,利用这种转换引擎你可以通过网络接口或命令行工具对文件的格式进行转换,JODConverter可以帮助你实现OpenOffice.org的这种文件转换功能 平台, 使用如下命令: "C:\Program Files\OpenOffice.org 2.2\program\soffice" -accept="socket,port=8100;urp;" JODConverter 下载最新版本的jodconverter-tomcat-x.x.x.zip,解压到某个目录,就可以启动 JODConverter sh jodconverter-tomcat-2.1.1/bin/startup.sh 也可以通过命令行对文件进行转换,如: java -jar jodconverter-2.1.1/lib/jodconverter-2.1.1.jar loremipsum.odt loremipsum.pdf
--jodconverter 核心包 --> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-core --springboot支持包,里面包括了自动配置类 --> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-spring-boot-starter --jodconverter 本地支持包 --> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-local =true #OpenOffice安装地址 jodconverter.local.office-home=C:/Program Files (x86)/OpenOffice 4 #同时执行任务的个数 jodconverter.local.max-tasks-per-process =10 #设置端口号(任意设置) jodconverter.local.port-numbers=8110 #controller工具参数 online.buffer.path=C:/online_pdf
第五步:运行程序,控制台输出结果 四月 19, 2014 6:47:07 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager -127.0.0.1_port-2002' 四月 19, 2014 6:47:07 下午 org.artofsolving.jodconverter.office.OfficeProcess start 四月 19, 2014 6:47:23 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop INFO: stopping stop INFO: stopped 四月 19, 2014 6:47:23 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager -127.0.0.1_port-2002' 四月 19, 2014 6:47:23 下午 org.artofsolving.jodconverter.office.OfficeProcess start
我的实现逻辑有两种: 一、利用jodconverter(基于OpenOffice服务)将文件(.doc、.docx、.xls、.ppt)转化为html格式。 二、利用jodconverter(基于OpenOffice服务)将文件(.doc、.docx、.xls、.ppt)转化为pdf格式。 ; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection ; import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter; /** * 利用jodconverter 以上需要引入jodconverter的jar包。
1、因项目需求,使用openoffice+jodconverter,在服务器端将word转换为pdf。 本案例是一种解决方法,但不是最好的解决方法,因为服务端需要安装openoffice软件,依赖的jodconverter jar版本2.2.1比较老,不支持office07以后的版本,而2.2.2版本在中央仓库没有 maven依赖 <dependency> <groupId>com.artofsolving</groupId> <artifactId>jodconverter --jodconverter2.2.1必须依赖slf4j-jdk14必须这个版本,不然源码中日志会报错--> <dependency> <groupId>org.slf4j
大体思路是借助jodconverter-core和Openoffice将doc等文件转为pdf格式,再由前端通过第三方预览组件如pdf.js负责预览展示。 如需代码,请留下邮箱~~~ 文件转换 该模式与上面方案存在同样的问题,如果需要支持高版本office文档的转换,也需要jodconverter-core的支持。 使用 kkFileView 刚开始仅仅依赖com.artofsolving.jodconverter的jar包完成文档转换。 其实这里的orgartofsolving.jodconverter-core就是我们提到的kkFileView项目中的jodconverter-core子项目。 整体对比下来,这两种方案都存在问题 都依赖相对较多的第三方库和软件Openoffice、swftools等 库和jar的版本没有持续维护,jodconverter的版本最新的是2008年,jodconverter-core
由于需要做这样的项目,我查阅了很多资料,最后选定一下方案去做: Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>FlexPaper 浏览 今天就完成第一步: Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter) 做之前,我们要先做一些准备: 1.下载:Apache_OpenOffice_incubating ; 11 import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration; 12 import org.artofsolving.jodconverter.office.OfficeManager 15 十一月 05, 2012 5:19:19 下午 org.artofsolving.jodconverter.office.OfficeConnection$1 disposing 16 INFO: 34 十一月 05, 2012 5:19:26 下午 org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop 35 INFO
所以使用 jodconverter 来调用 LibreOffice。之前网上搜到的教程早就已经过时。jodconverter 早就推出了 4.2 版本。最靠谱的文档还是直接看官方提供的wiki。 关键技术实现技术实现: jodconverter + libreoffice 的使用 jodconverter 已经提供了一套完整的spring-boot解决方案,只需要在 pom.xml中增加如下配置 : <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-local</artifactId > <version>4.2.0</version> </dependenc> <dependency> <groupId>org.jodconverter</groupId> =/Applications/LibreOffice.app/Contents # 开启jodconverter jodconverter.local.enabled=true 直接使用: @Autowired
Aug 21, 2019 3:35:32 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager <init> INFO: ProcessManager implementation is LinuxProcessManager Aug 21, 2019 3:35:32 PM org.artofsolving.jodconverter.office.OfficeProcess prepareInstanceProfileDir WARNING: profile dir '/usr/local/tomcat/temp/.jodconverter_socket_host-127.0.0.1 _port-8100' already exists; deleting Aug 21, 2019 3:35:32 PM org.artofsolving.jodconverter.office.OfficeProcess -127.0.0.1_port-8100' Aug 21, 2019 3:35:32 PM org.artofsolving.jodconverter.office.OfficeProcess start
2、自研实现文档预览服务器 标题取得高大上,常用的方法基本上也是基于第三方类库进行实现 比如flash的flexpaper将文档转换为swf格式,然后使用flash在网页中浏览 在比如java可以使用jodConverter 这边的选择只是针对文档预览,而非所有技术、产品选择都按这样选择,毕竟很多时候的自研的成本远远大于购买第三方服务,要具体情况具体分析 下边以jodconverter+LibreOffice为例,来实现一个简单的文档预览 -- office预览相关--> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-core >jodconverter-local</artifactId> </dependency> <dependency> <groupId>org.jodconverter</ > <groupId>org.jodconverter</groupId> <artifactId>jodconverter-online</artifactId> </
--openoffice--> <dependency> <groupId>com.artofsolving</groupId> <artifactId>jodconverter</artifactId <version>2.2.1</version> </dependency> 3.将word、excel、ppt转换为pdf流的工具类代码 import com.artofsolving.jodconverter.DefaultDocumentFormatRegistry ; import com.artofsolving.jodconverter.DocumentConverter; import com.artofsolving.jodconverter.DocumentFormat ; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection ; import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter; import
或者 top -bc |grep soffice.bin 查看卡死的进程杀死即可 kill -9 进程id 后端中使用 方式1(使用三方库) <dependency> <groupId>org.jodconverter </groupId> <artifactId>jodconverter-core</artifactId> <version>4.2.0</version> </dependency> <dependency > <groupId>org.jodconverter</groupId> <artifactId>jodconverter-local</artifactId> <version>4.2.0 </version> </dependency> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-spring-boot-starter groupId> <artifactId>ridl</artifactId> <version>5.4.2</version> </dependency> application.properties jodconverter
远程文件预览功能 代码集成 基于 SpringBoot + OpenOffice 实现的项目案例,配置文件 application.properties 引入: # 默认不开启 需要开启的设置成true jodconverter.local.enabled =true # 开启多个openOffice进程,每个端口对应一个进程 jodconverter.local.portNumbers=8100,8200 # openOffice进程重启前的最大进程数 jodconverter.local.maxTasksPerProcess=100 项目启动会自动生成两个转换进程,下面是伪代码实现: @RestController @RequestMapping("
program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 三、安装jodconverter 1.下载安装包:https://sourceforge.net/projects/jodconverter/ 2.解压 四、安装java 五、转换文件 $ java -jar /home/vagrant/Code/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /home/vagrant/Code/test
远程文件预览功能 代码集成 基于 SpringBoot + OpenOffice 实现的项目案例,配置文件 application.properties 引入: # 默认不开启 需要开启的设置成true jodconverter.local.enabled =true # 开启多个openOffice进程,每个端口对应一个进程 jodconverter.local.portNumbers=8100,8200 # openOffice进程重启前的最大进程数 jodconverter.local.maxTasksPerProcess=100 项目启动会自动生成两个转换进程,下面是伪代码实现: @RestController @RequestMapping(
推荐使用1.5.1 JODConverter:需要jar包,如果是maven管理直接引用就可以 操作步骤: 1.office准备 下载openoffice: http://www.openoffice.org ; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection ; import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter; /** 二、利用jodconverter(基于OpenOffice服务)将文件转化为html格式或者pdf格式(不成熟): package org.pan.poi.poi; import java.io.File ; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection
开源项目 JODConverter 就是结合openoffice来进行文档转换的java组件。 另外有一個命令行工具swftools,該工具可以將pdf轉換為swf格式的文檔,提供給ie客戶端流覽。 這裏有一篇文章可以參考配置JODConverter为一个WEB应用 备注: 安装配置可以用bat文件来快速实现,运行前请先修改相应目录参数 "C:\Program Files\Windows Resource
word转pdf 方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台) 方法2.jodconverter + openOffice (一般格式实现效果还行,复杂格式容易有错位
解压JODConverter文件 “jodconverter-core-3.0-beta-4-dist.zip” ,将解压后的目录拷贝到目录 “C:\Red5\webapps\openmeetings