Java实现word转PDF转图片功能
这里给大家推荐免费的国产组件(蓝冰科技) spire 官网链接
1.设置仓库地址
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
2.引入依赖包
这里直接选了spire.office.free 大家可以按需只选自己需要的 比如:spire.doc.free (比较耗时,耐心等待)
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.office.free</artifactId>
<version>5.3.1</version>
</dependency>
word转pdf
/**
* @param inputStream word文档的输入流
* @return pdf的输出流
* @throws IOException
*/
public static ByteArrayOutputStream wordToPdf(InputStream inputStream) throws IOException {
//创建Document实例
Document doc = new Document();
//以流的形式加载Word文档 指定文档格式
doc.loadFromStream(inputStream, FileFormat.Docx);
ByteArrayOutputStream os = new ByteArrayOutputStream();
doc.saveToFile(os,FileFormat.PDF);
return os;
}
word转图片
/**
* word转图片
* @param inputStream word文档的输入流
* @param maxPage 允许生成的最大图片数
* @return 图片输出流数组
* @throws IOException
*/
public static OutputStream[] wordToImage(InputStream inputStream,Integer maxPage) throws IOException {
//创建Document实例
Document doc = new Document();
//以流的形式加载Word文档 指定文档格式
doc.loadFromStream(inputStream, FileFormat.Docx);
//转换到图片并设置图片的分辨率
BufferedImage[] images = doc.saveToImages(0, doc.getPageCount() > maxPage ? maxPage : doc.getPageCount() , ImageType.Bitmap, 500, 500);
OutputStream[] outputStreams = new OutputStream[doc.getPageCount() > maxPage ? maxPage : doc.getPageCount()];
for (int i = 0; i < images.length && i < maxPage; i++) {
OutputStream os = new ByteArrayOutputStream();
ImageIO.write(images[i], "PNG",os);
outputStreams[i] = os;
}
return outputStreams;
}