Apache OpenOffice-java调用时的问题总结
因为项目需要,做了一个对office、txt、html等文档转换PDF的小功能,使用的是Apache OpenOffice服务和java实现,在开发过程中遇到一些问题,做了一个总结。
1、乱码问题
网上有很多攻略,大致讲的是向JDK的编码和linux系统中的编码添加可支持的字体即可。
2、OpenOfficeDocumentConverter和StreamOpenOfficeDocumentConverter的区别
(1)最终生成文件权限问题
当Apache OpenOffice服务和java程序部署在同一台服务上时,可以使用OpenOfficeDocumentConverter,但是同时需要注意,使用该类转换的PDF文件用户权限为Apache OpenOffice的启动用户权限。例如,java服务使用较低的权限用户worker启动,而Apache OpenOffice使用root用户启动,那么生成的PDF文件也为root,那么java程序如果对后续生成的PDF文件进行读写等操作时,由于java服务为worker权限,会造成读取不到文件流的问题。而使用StreamOpenOfficeDocumentConverter,是由OpenOffice生成完PDF后,把PDF的流传给java服务,由java服务生成的PDF文件,所以不会产生用户权限的问题
(2)性能问题
OpenOfficeDocumentConverter直接由OpenOffice生成PDF文件,而StreamOpenOfficeDocumentConverter是由OpenOffice把PDF流回传给java服务,有java服务生成。所以OpenOfficeDocumentConverter在性能上更快。但是OpenOfficeDocumentConverter的问题是,不能实现java服务和OpenOffice的高可用性(因为两个服务部署在同一台物理机上)
(3)实现java服务与OpenOffice服务的高可用部署
java服务与OpenOffice服务在同一台物理机时,可以使用OpenOfficeDocumentConverter,因为他转换的更快。如果两个服务不在同一台物理机上,可以使用StreamOpenOfficeDocumentConverter类。
3、对新版本office的支持,如.docx .xlsx .pptx等
目前maven公网仓库中,没有jodconverter-2.2.2.jar,只有jodconverter-2.2.1.jar.而支持新版office和html转换格式的支持,需要2.2.2版本,这个需要自己去下载,并维护到maven私服上。步骤如下:
(1)下载
https://sourceforge.net/projects/jodconverter/?source=typ_redirect 去这个地址下载即可。
(2)上传maven私服
通过步骤1下载下来的是一个.zip的包,解压后在jodconverter-2.2.2\lib目录下可以看到,如下图:
我们可以看到jodconverter-2.2.2.jar包,把这个jar包上传maven私服即可。而这个包里面含有对新版office(.docx .xlsx .pptx)的支持,HTML的支持等。对于juh-3.0.1.jar、ridl-3.0.1.jar、unoil-3.0.1.jar这三个包在maven公网仓库中是可以查到的,所以直接在pom.xml中添加即可。
Apache OpenOffice-java调用时的问题总结相关推荐
- wsimport将wsdl生成java 调用时碰到的一个问题Could not initialize Service
在一个采用了XFire作为WebService框架Web项目中,添加由JDK1.6 wsimport命令生成的一个WebService客户端调用,在客户端调用时出现了如下问题 log4j:WARN N ...
- java 调用linux openoffice,java 调用linux openoffice
如题,Java后台调用OpenOffice将文件转换为PDF,在调用时报错,异常信息如下: Mar 20, 2014 1:16:13 AM org.artofsolving.jodconverter. ...
- java调用WCF问题
过去微软.NET的ASMX Web Service已被大家广泛应用﹐但在信息安全日愈重视之下﹐微软有意以WCF取代原有的 ASMX Web Service.WCF 具有许多先进的技术﹐而跨平台作业已是 ...
- Kotlin学习笔记 第四章 Java调用Kotlin
参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...
- 花了一天,解决java调用matlab
鉴于labview做不了web(labview强项在于硬件仪器控制,可能也可以做web,还不会),虽然有web发布工具,但是基于远程前面板,最后效果都呈现在前面板上(涉及了跳转页面.matlab绘图等 ...
- Java 调用Shell脚本执行 SCP命令提示Authorized users only. All activity may be monitored and reported.
近期做了个小项目主要是关于数据处理这方面的. 在Java后端调用服务器上Shell脚本,而Shell脚本执行时一条Scp执行结果的提示报 Authorized users only. All acti ...
- Apache CXF生成java代码用java调用Webservice接口
这里写自定义目录标题 使用java调用webservice接口 使用java调用webservice接口 当我们使用java去访问webservice的接口时,有很多种方式,这里我们使用apache ...
- matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded
matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本, ...
- 服务器无法继续该事务 3400000006 错误原因--JAVA调用SQLSERVER存储过程时过程发生异常内部事务未
通过JAVA调用SQLSERVER存储过程时,存储过程内部发生了类型转换异常,在类型转换异常发生之前已经将事务打开了,并且在类型转换那一行没有采用像如下错误处理: if @@error<> ...
- Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名
原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874 ...
最新文章
- wordpress jquery加载如何实现?
- 千万不要一辈子靠技术生存
- Alphabet wars - nuclear strike--5 kyu--Python解法
- Java注释 link_开源代码中注释中的那些a link p @ 是给什么编辑器用的????
- java应用的优化【转】
- 抽象方法《Thinking in Java》随笔014
- 假笨说-谨防JDK8重复类定义造成的内存泄漏
- 图解,C语言数据结构,插入排序
- word2vec原理知识铺垫
- ubuntu shortcuts
- 回溯算法与八皇后问题
- 有趣的数据结构——Linux内核中的链表(Black Aureole)
- (四)Android仿微信—仿QQ登陆
- huggingface.transformers任务简介
- 13 MCMC(Markov Chain Monte Carlo)
- arduino 1 读取电机编码器值
- 爬取凤凰网站财经类的新闻,函数时编程,可全部实现,由于内容量大,需要时间太长,服务器会禁止,为了防止,可以将time.sleep()设置的时间长点...
- 2019南京帆软春招
- .net程序员工作两年总结
- 分布式系统架构设计三十六式之服务治理 - 第一式 - 隔板模式
热门文章
- 茴香豆的n种写法之①——linQ Join写法
- bug人生--状态在编程中的使用
- python实现文件压缩
- otc机器人氩弧焊机_历经100年,这家公司成为弧焊机器人领域的世界王者
- 自动部署 mysql_MySQL5.7自动部署脚本(持续更新)
- yolov3-tiny 训练一个检测器(2)
- LAN7500 Mac OS X Device Driver
- 相机标定原理介绍(二)
- VScode C、c++ 环境(windows10 17763.1131)
- 世界地图可以无限放大_做外贸有哪些软件可以推荐?