Java实现Word文档转图片 1579次阅读 it • bug及解决方案 2021-10-11 ## 第一步,引包 e-iceblue 注意**商业版**和**免费版**,商业版生成出来的图片最上面加了一行**水印**,免费版则有篇幅等**限制**。 ``` com.e-iceblue e-iceblue http://repo.e-iceblue.com/nexus/content/groups/public/ e-iceblue spire.doc.free 3.9.0 ``` 下载很慢,大概20分钟吧? ## 第二步,开始使用! ``` // fileUrl和fileName都是入参,Excel文件路径和导出图片的文件名 // 图片缓存目录 String tempFileUrl = "C:/Users/临轩/Desktop/projects/"; List imageUrls = new ArrayList<>(); try { // 根据路径取到生成的文件 File file = FileUtil.file(fileUrl); if(FileUtil.isEmpty(file)) { log.error("docx文件为空"); return null; } Document doc = new Document(); //加载文件 第二个参数 FileFormat.Auto 会自动去分别上传文件的 docx、doc类型 doc.loadFromStream(new FileInputStream(file), FileFormat.Auto); //上传文档页数,也是最后要生成的图片数 Integer pageCount = doc.getPageCount(); // 参数第一个和第三个都写死 第二个参数就是生成图片数 BufferedImage[] image = doc.saveToImages(0, pageCount, ImageType.Bitmap); // 循环,输出图片保存到本地 for (int i = 0; i < image.length; i++) { String imgUrl = tempFileUrl + fileName + "_" + (i + 1) + ".png"; File f = new File(imgUrl); ImageIO.write(image[i], "PNG", f); imageUrls.add(imgUrl); } } catch (IOException e) { e.printStackTrace(); } return imageUrls; ``` ## 第三步,康康效果 文件名:简易赔案协议书1632798805258_1.png 图片:  Alipay手机上阅读 最后一次更新于2021-10-11 None
出问题,Eazypoi对word的支持并不好,只支持简单的word导出。复杂的word表格会莫名其妙的报错,使用数据列表的话合并的单元格样式还会变,非常的不人性化。 只能使用Excel模板导出了。。然后用spire.xls转图片。
e-iceblue spire.xls.free 2.2.0然而即使如此还是有问题,上面是复杂表结构,下面的数据列表必须一行中每都有数据,要么填充,要么填空格,很难排版……
By 临轩 at 2021-10-18 9:40:40
看到这个模板你是不是想问怎么往表里填值呢?直接用EasyPoi的Excel模板导出!数据生成Excel,Excel生成图片,图片上传保存url,生成完毕!😆
By 临轩 at 2021-10-11 14:59:28