这两天遇到一个需求是将word转成图片,单纯用poi实现容易出问题,冲个浪发现没什么好大哥完整记录是怎么做的,那现在我就做个好大哥吧,如果用到,点个小心心哦!

需求:我想将word文档转成图片。

我:这也太简单了,直接上poi,分分钟出图好吧。

需求:我要实现多页word转成图片,最好是合成一张图片才好。

我:啊?搞这么大吗?那poi不行啊。。。只能另谋出路了。。。

经过一段时间的折腾,终于,找到了办法,话不多说,直接上代码,眼睛瞪大看。

第一步:导入com.aspose.words依赖,这里我们使用的是阿里云的maven仓库依赖包,感谢大神封装,真的不想去外网拉jar包本地添加依赖。

<dependency>
    <groupId>com.luhuiguo</groupId>
    <artifactId>aspose-words</artifactId>
    <version>23.1</version>
</dependency>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

第二步:编写一个测试Controller,加个main方法,关键代码,上!

import com.aspose.words.Document;
import com.aspose.words.SaveFormat;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TestController {
    public static void main(String[] args) throws Exception {
        String dataDir = "D:\\temp\\Test.docx";
        Document doc = new Document(dataDir);
        // 设置输出路径
        String outPath = "D:\\temp\\";
        // 创建输出目录
        File outputDirectory = new File(outPath);
        if (!outputDirectory.exists()) {
            outputDirectory.mkdirs();
        }
        // 获取文档页数
        int pageCount = doc.getPageCount();
        // 存储所有页面的图片
        List<BufferedImage> images = new ArrayList<>();
        // 循环遍历每一页并保存为图片
        for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
            Document extractedPage = doc.extractPages(pageIndex,1);
            // 设置每一页的保存路径
            String pageOutPath = outPath + "page_" + new Date().getTime() + "_" + (pageIndex+1) + ".png";
            // 保存为图片
            extractedPage.save(pageOutPath, SaveFormat.PNG);
            // 加载图片到内存
            BufferedImage image = ImageIO.read(new File(pageOutPath));
            images.add(image);
        }
        System.out.println("Word to Image conversion completed.");
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.

第三步:运行代码,查看结果,完美生成多个图片,妙啊!不信你看。

Java使用aspose将多页word转图片(一)_image

写到这,你们只管Ctrl+C、Ctrl+V吧,如果真的帮到了你,麻烦回来点个小心心哦,你的鼓励是我持续输出的最大动力,希望在学习Java的路上,和你一起进步哦!

下一篇我再给你把图片合到一起吧,先下班啦,别卷了各位,要开心哦!