Java操作Miscrosoft Office各类文件格式的开源免费工具库

Aspose.Words库
复制代码
是一个商业Java库,还封装了常用的word、pdf、防伪码、水印等诸多功能。

Apache 库需要注意的前置问题

复制代码
问题1:Word的两个格式doc和docx,POI并没有提供统一的处理类。分别用 HWPFDocument 处理doc文档,用 XWPFTemplate 处理docx文档。
HWPFDocument 处理doc文档
XWPFTemplate 处理docx文档
解决方法1:将.doc文件转成.docx格式,处理完后再转回来。
解决方法2:(待验证)可以前置统一将.doc名字重命名成.docx,如果严格要求格式,处理完后再把名字改回去。
Excel(xls和xlsx)同理。
Miscrosoft Office各类文件格式的读写:
复制代码
Apache POI库
Apache POI是一个开源的Java库,用于操作Microsoft Office格式的文件。
它支持各种Office文档的读写功能,包括Word文档、Excel电子表格、PowerPoint演示文稿、Outlook电子邮件等。
Apache POI提供了一组API,使得Java开发者能够轻松地在Java应用程序中处理Office文件。
Java 将 Word 文档转换为 PDF
复制代码
使用PdfConverter工具类,如下:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.converter.pdf.PdfConverter;
import org.apache.poi.xwpf.converter.pdf.PdfOptions;
public class Word2PdfByApachePOI {
	public start void main(String[] args) throws Exception {
		// 读取word目标文件
		XWPFDocument docx = new XWPFDocument(new FileInputStream("xxxx/input.docx"));
	
		//创建pdf选项
		PdfOptions options = PdfOptions.create();
		
		// word转为pdf
		PdfConverter.getInstance().convert(docx, new FileOutputStream("output.pdf"),options);
	}
}
PDF操作
复制代码
Apache PDFBox库是一个开源的Java工具,专门用于处理PDF文档。
它允许用户创建全新的PDF文件,编辑现有的PDF文档,以及从PDF文件中提取内容。

功能:创建、渲染、打印、合并、拆分、加密、解密、签名等多种操作PDF文件的功能,包括一个命令行工具,可以用于执行各种PDF处理任务。
支持文本提取和搜索,以及将PDF转换为其他格式,如图片和文本。

Apache PDFBox具备以下主要功能:
	从PDF文件中提取Unicode文本。
	将单个PDF文件拆分成多个文件,或将多个PDF文件合并成一个。
	从PDF表单中提取数据,或填写PDF表单。
	验证PDF文件是否符合PDF/A-1b标准。
	使用标准的Java打印API打印PDF文件。
	将PDF文件另存为图像格式,如PNG或JPEG。
	从零开始创建PDF文件,包括嵌入字体和图像。
	对PDF文件进行数字签名。
相关推荐
安_13 分钟前
js 数组splice跟slice
开发语言·前端·javascript
你不是我我20 分钟前
【Java 开发日记】我们来说一说 Redis 主从复制的原理及作用
java·redis·github
程序员葫芦娃20 分钟前
【Java毕设项目】基于SSM的旅游资源网站
java·开发语言·数据库·编程·课程设计·旅游·毕设
Pocker_Spades_A21 分钟前
飞算Java在线学生成绩综合统计分析系统的设计与实现
java·开发语言·java开发·飞算javaai炫技赛
Yuer202522 分钟前
用 Rust 做分布式查询引擎之前,我先写了一个最小执行 POC
开发语言·分布式·rust
肉丸滚球23 分钟前
飞算 JavaAI 转 SpringBoot 项目沉浸式体验:高效开发在线图书借阅平台
java·spring boot·后端
叫我阿柒啊26 分钟前
从Java全栈到前端框架:一场真实的技术面试对话
java·vue.js·spring boot·微服务·typescript·前端开发·后端开发
鸽鸽程序猿28 分钟前
【JavaSE】简单理解JVM
java·jvm
Francek Chen28 分钟前
【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析
java·开发语言·人工智能·ai编程·飞算
yyovoll37 分钟前
Java包和权限的知识点介绍
java·spring