记录EXCEL或WORD转图片

       <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.4</version></dependency><dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactId><version>1.0.3</version></dependency><dependency><groupId>com.documents4j</groupId><artifactId>documents4j-transformer-msoffice-excel</artifactId><version>1.0.3</version></dependency><dependency><groupId>com.documents4j</groupId><artifactId>documents4j-transformer-msoffice-word</artifactId><version>1.0.3</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version></dependency>
/*** 1 word* 2.excel* 看官网需要office的啥服务,我安装的wps就没问题*/String data = DocumentImageUtil.documentImage(params, multipartFiles, null, null);public class DocumentImageUtil {/*** @param params* @param multipartFiles* @param name           null转base64 否则文件* @return* @throws IOException*/public static String documentImage(Map<String, Object> params, MultipartFile multipartFiles, String path, String name) throws IOException {BASE64Decoder decoder = new BASE64Decoder();byte[] bytes = new byte[0];if (params.containsKey("base64String")) {bytes = decoder.decodeBuffer(String.valueOf(params.get("base64String")));}if (null != multipartFiles && multipartFiles.isEmpty()) {bytes = multipartFiles.getBytes();}try {ByteArrayInputStream docxInputStream = new ByteArrayInputStream(bytes);ByteArrayOutputStream outputStream = new ByteArrayOutputStream();IConverter converter = LocalConverter.builder().build();String type = params.get("type").toString();if (Integer.valueOf(type) == 1) {converter.convert(docxInputStream).as(DocumentType.MS_WORD).to(outputStream).as(DocumentType.PDF).execute();}if (Integer.valueOf(type) == 2) {converter.convert(docxInputStream).as(DocumentType.MS_EXCEL).to(outputStream).as(DocumentType.PDF).execute();}PDDocument load = PDDocument.load(outputStream.toByteArray());try {List<String> list = new ArrayList<>();if (StringUtils.isEmpty(name)) {list = pdf2Image(load, 300);} else {pdf2ImageFile(load, 300, path, name);}outputStream.close();return StringUtils.join(list.toArray(), ",");} catch (Exception e) {outputStream.close();}} catch (Exception e) {e.printStackTrace();}return null;}/**** base64* PDF文件转PNG/JPEG图片* @param dpi 越大转换后越清晰,相对转换速度越慢,一般电脑默认96dpi*/public static List<String> pdf2Image(PDDocument pdDocument, int dpi) {List<String> list = new ArrayList<>();try {PDFRenderer renderer = new PDFRenderer(pdDocument);int pages = pdDocument.getNumberOfPages();// 获取PDF页数for (int i = 0; i < pages; i++) {ByteArrayOutputStream outputStream = new ByteArrayOutputStream();BufferedImage image = renderer.renderImageWithDPI(i, dpi);ImageIO.write(image, "jpg", outputStream);// PNGbyte[] bytes = outputStream.toByteArray();BASE64Encoder encoder = new BASE64Encoder();String string = encoder.encode(bytes);list.add(string.replaceAll("\\r\\n", ""));pdDocument.close();}} catch (Exception e) {}return list;}/**** 文件* PDF文件转PNG/JPEG图片* @param dpi 越大转换后越清晰,相对转换速度越慢,一般电脑默认96dpi*/public static void pdf2ImageFile(PDDocument pdDocument, int dpi, String path, String name) {List<String> list = new ArrayList<>();try {PDFRenderer renderer = new PDFRenderer(pdDocument);int pages = pdDocument.getNumberOfPages();// 获取PDF页数if (createDirectory(path)) {for (int i = 0; i < pages; i++) {BufferedImage image = renderer.renderImageWithDPI(i, dpi);File file = new File(path + name + ".jpg");ImageIO.write(image, "jpg", file);// PNGpdDocument.close();}}} catch (Exception e) {}}private static boolean createDirectory(String folder) {File dir = new File(folder);if (dir.exists()) {return true;} else {return dir.mkdirs();}}
}

java EXCEL或WORD转PDF转图片(base64)相关推荐

  1. Java实现Excel和word转pdf加水印,复制及可用

    Java实现Excel和word转pdf加水印,复制及可用 时隔大半年,之前朋友,今天突然找我说,他们有个需求要做这东西.想起来之前自己照着官方文档写,也走了不少坑.今天就索性写个,也为了方便以后使用 ...

  2. 预览word,excel,ppt,pdf、图片————使用vue实现

    预览word,excel,ppt,pdf.图片----使用vue实现 需要下载的依赖: template模板实现: 方法的实现: 需要下载的依赖: npm i xlsx // 预览excel插件 np ...

  3. LayUi集成下载Excel、word、PDF、CSV扩展

    LayUi集成下载Excel.word.PDF.CSV扩展 Excel.CSV Word PDF 根据项目需求,主要用的layui这个前段框架,现在需要支持将页面下载为四种格式的文件. Excel.C ...

  4. 关于java中实现word转pdf

    1.java中实现word转pdf几种方式如下 1.使用jacob(Java COM Bridge)操作offfice的方式,基于这种方式无论是水印还是格式都可以完美转换:但是这个方式都只是基于win ...

  5. ie如何导入html文件类型,Magicodes.IE: 导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf和Html。...

    Magicodes.IE 导入导出通用库,支持Dto导入导出以及动态导出,支持Excel.Word.Pdf和Html. 疯狂的徽章 GitHub Azure DevOps Build Status: ...

  6. java关于对于word或者pdf文件的批量下载实现,其中包括(Java实现创建word文档模板,根据模板导出word文档)

    本次需求是,pdf是表格类型的文件,我这里使用了word模板进行处理.但由于是多个文件一起导出,因此全部放到一个目录底下进行打包下载. ## 整体思路 /*** 下载思路:* 1.查询出数据后:* 2 ...

  7. Java开发中word转pdf那件事

    事件背景 由于项目需要,最新开始研究起word转pdf了,本以为应该是一件很简单的事情,网络上应该已经有很成熟的解决方案了,毕竟在电脑上使用wps或office操作只需要另存为pdf即可,结果一顿百度 ...

  8. java操作Excel、word和pdf

    2019独角兽企业重金招聘Python工程师标准>>> 有些时候我们需要读写excel和word,或者将文字转为pdf那我们应该怎么做呢? 如果需要读写excel需要添加包: < ...

  9. 使用freemarker导出word、pdf、图片

    安装openoffic启动服务请参考: java 调用OpenOffice将word格式文件转换为pdf格式 - warrior1234 - 博客园 maven包: <!-- https://m ...

  10. PHP word ppt pdf 转图片

    一.window安装步骤(转载:https://www.cnblogs.com/jinxiblog/p/8053008.html) 个人操作步骤补充: 1.先下载php_imagick扩展,拷贝待ph ...

最新文章

  1. DATETIME类型和BIGINT 类型互相转换
  2. 使用Fiddler进行Web接口测试
  3. 瑞银监控机器人组装法_瑞银公布Model 3后续拆解报告:装配问题严重 噪音勉强能接受...
  4. 如何维护笔记本电脑的电池
  5. CSS fixed 定位元素失效的问题
  6. 利用WebHook实现自动部署Git代码
  7. 计算机组装流程,电脑组装教程
  8. 【机器学习】层次聚类-Agglomerative clustering
  9. 只要方向正确,路远不是事
  10. 36氪:超级表格想把企业协作做得“轻”一点
  11. 0004-1-模型好坏评判标准
  12. matlab画入射系数和透射系数,反射系数和透射系数.ppt
  13. springboot 与jsonp数据返回
  14. 无语的index hint:手工分配哈希区,5小时不出结果,优化后20分钟
  15. python视觉识别线条_简单车道线识别
  16. badger mremap size mismatch数据库异常
  17. 到底是什么人在买品牌整机 —— 拯救者刃 7000P 体验评测
  18. 单选框(radio)实现性别选择,实现选中后取消
  19. ARP防火墙AntiARP V4.2
  20. 艾瑞咨询蔡芳:2012移动互联网发展趋势简析

热门文章

  1. 千方百剂医药管理系统对接第三方WMS系统(天力士物流)
  2. MT4 CRM 源码
  3. 利用EnableQ在线问卷调查引擎服务学校评教评学工作
  4. 视频《博客三人行》Windows7让Vista沦为“WindowsMe”
  5. Eclipse及其常用插件的下载地址
  6. MessageDigest
  7. VirtualBox 搭建android-x86
  8. 【转载】Android 中东阿拉伯语适配,看这一篇够了。
  9. 8张图学习大型网站技术架构(转)
  10. idea运行lua脚本