Java使用openoffice将office系列文档转换为PDF

在java中如何使用openOffice进行格式转换,word,excel,ppt,pdf互相转换 在java中如何使用openOffice进行格式转换 阅读详情

前导:

  1. 开发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档。
  2. openoffice既有windows版本也有linux版。不用担心生产环境是linux系统。
  3. 关于linux系统安装openoffice软件请参照:待更新...

 

java使用SWFTools将PDF转成swf并使用flexpaper播放PDF

1、openoffice依赖jar,以maven为例:

<dependency>
			<groupId>com.artofsolving</groupId>
			<artifactId>jodconverter</artifactId>
			<version>2.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.openoffice</groupId>
			<artifactId>jurt</artifactId>
			<version>3.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.openoffice</groupId>
			<artifactId>ridl</artifactId>
			<version>3.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.openoffice</groupId>
			<artifactId>juh</artifactId>
			<version>3.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.openoffice</groupId>
			<artifactId>unoil</artifactId>
			<version>3.0.1</version>
		</dependency>

		<!--jodconverter2.2.1必须依赖slf4j-jdk14必须这个版本,不然源码中日志会报错,很low的一个问题-->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-jdk14</artifactId>
			<version>1.4.3</version>
		</dependency>

2、直接上转换代码,需要监听openoffice应用程序8100端口即可。

	public void convert(File sourceFile, File targetFile) {

		try {
			// 1: 打开连接
			OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
			connection.connect();

			DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
			// 2:获取Format
			DocumentFormatRegistry factory = new BasicDocumentFormatRegistry();
			DocumentFormat inputDocumentFormat = factory
					.getFormatByFileExtension(getExtensionName(sourceFile.getAbsolutePath()));
			DocumentFormat outputDocumentFormat = factory
					.getFormatByFileExtension(getExtensionName(targetFile.getAbsolutePath()));
			// 3:执行转换
			converter.convert(sourceFile, inputDocumentFormat, targetFile, outputDocumentFormat);
		} catch (ConnectException e) {
			log.info("文档转换PDF失败");
		}
	}

3、需注意:jodconverter 在转换2007版本以后的xxx.docx文档会报错,原因大家都明03后缀名xxx.doc  07以后版本xxx.docx

查看jodconverter源码发现documentFormat不支持xxx.docx格式BasicDocumentFormatRegistry中public DocumentFormat getFormatByFileExtension(String extension)默认支持是使用doc格式

BasicDocumentFormatRegistry类源码

//
// JODConverter - J
web使用openoffice实现在线预览office文档 最近搞web项目,使用框架struts+spring+jpa实现,做到项目里面一个在线预览功能,试过无数的方法,最后得到了一个非常使用的方法,这方法也是我看过多篇博客的出来的,仅限参考。 效果图如下: 第一步: 通过第三方软件openoffice将office文档ppt,pptx,doc,docx,xls,xlsx转换成pdf文档; openoffice下载链接:http: 阅读详情

相关推荐

java项目通过openoffice将word等office文档转换成pdf

java通过openoffice将word等文件转换成pdf

weixin_44053324的博客 614

OpenOffice实现文档转PDF加水印

OpenOffice实现文件转Pdf加水印(支持自定义添加水印、页眉、页脚) 最近项目需要实现下载Office文档时自动转成PDF文档, 以下代码支持2003及2007版的Word,PPT,Excel转换,并支持自定义添加水印、页眉、页脚 实现需要事先安装最新版 OpenOffice 下载地址:http://www.openoffice.org/ JodConverter 下载地址:...

xiao雷博客 3187

openoffice+pdf2swf实现在线转换office文档,实现在线预览

openoffice+pdf2swf实现在线转换office文档,实现在线预览

cai_chinasoft的专栏 2万+

Java使用OpenOffice实现Office到PDF转换指南

在本章节中,我们探讨了提升文档转换效率的多种策略,从OpenOffice的配置优化到代码层面的调整。这些方法可以相辅相成,共同作用于提升文档转换的速度和效率。通过对启动参数、服务器配置、代码编写以及线程管理等多方面进行优化,可以显著提高文档转换的性能,满足生产环境中的高性能需求。

weixin_42527665的博客 1530

jave借助于JodConverter对openoffice组件进行文件转换

使用jodconverter操作类库对openoffice组件进行文件转换操作,文件格式转换种类繁多,包括word,html,excel,pdf,图片,xps等一些常见文件格式的相互转换,初学者可以用来参考,具体详情请查看源代码

使用openoffice转换PDF工具类及所有jar包

文档在线预览,java使用openoffice转换PDF的工具类及相关jar包。

Java用OpenOffice将office转换为PDF

基于Java,利用OpenOffice转换office为PDF, 内附有jar包,java实现,OpenOffice下载地址,及OpenOffice在Linux下的安装实现。

告别手动复制粘贴!用R语言脚本批量抓取TCMSP中药靶点基因(附完整代码)

本文介绍如何使用R语言脚本自动化抓取TCMSP数据库中的中药靶点基因数据,告别手动复制粘贴的低效操作。通过详细的代码示例和参数设置,帮助研究人员快速获取并过滤符合药代动力学标准的中药成分及其靶点基因,大幅提升研究效率。特别适合生物信息学和中药现代化研究领域的从业者。

weixin_26950847的博客 261

【实战】S7-PLCSIM Advanced V3.0 授权问题排查指南(Error Code:-30与LicenseNotFound深度解析)

本文深度解析S7-PLCSIM Advanced V3.0启动时遇到的Error Code:-30与LicenseNotFound报错问题。文章提供了一套系统性的排查指南,从检查WinPcap驱动兼容性、确保Automation License Manager服务运行,到正确安装浮动授权以及清理系统残留缓存,逐步解决授权链条中的各个环节故障,帮助用户彻底解决仿真环境启动失败的问题。

weixin_29185167的博客 720

STM32F407实现LwIP的MQTT客户端并连接到服务器

这个是用LwIP协议栈中自带的MQTT客户端API写成的,代码注释很详细,附带有服务端的展示。LwIP版本是2.1.2.

wait_for_STM32的博客 6394

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

第154章 点云大规模并行处理(GPU加速)

优化点云处理✨ 使用。

yumeiguo的博客 374

关于 Nginx 监听地址 0.0.0.0 的详细解释

0.0.0.0在Nginx配置中表示监听服务器所有网络接口(包括公网IP、内网IP和本地回环地址),这是默认配置。当使用listen 80;时,Nginx会接受通过服务器任何IP地址的80端口访问请求。相比只监听特定IP,这种配置更通用,但也意味着服务会对外网开放,需注意安全风险。可通过netstat命令验证监听状态,显示0.0.0.0:80即表示正确配置。

weixin_43674738的博客 1563

MATLAB - 激光雷达 - 相机联合标定(Lidar-Camera Calibration)

激光雷达传感器和相机通常在自动驾驶应用中结合使用,因为激光雷达传感器收集三维空间信息,而相机则以二维图像捕捉空间的外观和纹理。您可以融合来自这些传感器的数据来改进物体检测和分类。激光雷达-相机标定可以估算出一个变换矩阵,给出两个传感器之间的相对旋转和平移。在进行激光雷达-相机数据融合时,您可以使用该矩阵。本图说明了激光雷达和相机标定 (LCC) 过程的工作流程,我们使用棋盘格作为标定对象。我们从激光雷达和相机数据中提取棋盘角和平面,然后在它们的坐标系之间建立几何关系,进行标定。

机器人控制与仿真应用 7370

【华为OD技术面试真题 - 技术面】- 测试面试题(1)

专栏:华为OD面试真题精选 目录: 2024华为OD面试手撕代码真题目录以及八股文真题目录黑盒测试:白盒测试:基本功能验证:边界条件测试:空白输入测试:特殊字符和格式测试:响应时间测试:压力测试:针对在不同系统和设备上测试聊天窗口功能,以及网络正常的前置条件,我们可以增加以下测试用例:系统和设备:PC端测试:移动端测试:功能验证:前置条件:网络性能影响测试:Postman:SoapUI:JMeter:Rest-Assured:Tricentis Tosca:ReadyAPI:CI/CD工具集成:测试管理工

算法大师! 3689

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Java使用SWFTools将PDF转成swf并使用flexpaper播放PDF
下一篇: Java POI利用反射导入导出Excel、Jxls实现Excel模板导出
make_a_difference
博客等级 码龄14年 10粉丝 17原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值