相对来说world、pdf转图片还是比较简单的,world、pdf转html坑是最多的。不过我们这篇文章只写world、pdf转图片,后者我将会用另一篇文章就行讲述。

原理: world、Excel转图片   就是先将内容转成pdf   在将pdf转成图片

话不多说 直接贴代码

首先就是 必须要有的依赖包

<!--PDF/excel/world转图片--><dependency><groupId>net.sf.jacob-project</groupId><artifactId>jacob</artifactId><version>1.14.3</version></dependency><!--<dependency>--><!--<groupId>com.aspose</groupId>--><!--<artifactId>aspose-cells</artifactId>--><!--<version>8.5.2</version>--><!--</dependency>--><dependency><groupId>com.sun.pdfview</groupId><artifactId>PDFRenderer</artifactId><version>0.9.1</version></dependency>
  • import java.io.File;public class FileManage {public static void listRoots() {// 将根目录存入File数组roots中File[] roots = File.listRoots();// 打印出根目录try {for (int i = 0; i < roots.length; i++) {// 打印出根目录下的文件File[] rootfile = roots[i].listFiles();if(rootfile!=null){for (File rf : rootfile) {//  System.out.println(rf);
    //        System.out.println("------------------------------------");}}}} catch (RuntimeException e) {// TODO 自动生成 catch 块e.printStackTrace();}}// 删除指定文件或一些文件public void deleteFiles(String path, String inname, String inextension) {boolean status = true;FileManagerFilter fmf = new FileManagerFilter(inname, inextension);File file = new File(path);File[] filelist = file.listFiles(fmf);// System.out.println(filelist.length); 此语句用于测试if (filelist.length != 0) {for (File fl : filelist) {// boolean delfil = fl.delete();System.out.println(fl + (fl.delete() ? " 成功" : " 没有成功")+ "被删除!");}} else {System.out.println("根据您所给的条件,没有找到要删除的文件!");}}// 删除所有目录下所有文件,但是目录没有删除,哈哈其实效果一样public void deletAllFile() {FileManage fmqq53227117 = new FileManage();File[] roots = File.listRoots();for (int i = 0; i < roots.length; i++) {if (roots[i].isDirectory()) {fmqq53227117.deleteFiles(roots[i].toString(), "*", "*");}}}//d:\ceshi.pdfpublic  void deleteFile(String filePath) {FileManage.listRoots();FileManage fm = new FileManage();// 此句表示删除G:\下的所有以"Fi"开头的,以"java"结尾的文件// 删除指定文件,请慎用!!!本机环境下有G:\盘File file = new File(filePath);//获取文件名 带后缀String filename = file.getName();//获取文件后缀String suffix =filename.substring(filename.indexOf(".")+1);//获取文件名  不带后缀String name = filename.substring(0, filename.indexOf("."));System.out.println(name+suffix);fm.deleteFiles("D:\\", name, suffix);//删除所有目录下文件, 请慎用此方法!!!!!!!!!!!!!!!!!//fm.deletAllFile();}public static void main(String args[]) {FileManage.listRoots();FileManage fm = new FileManage();// 此句表示删除D:\下的ceshi文件,以"pdf"结尾的文件fm.deleteFiles("D:\\", "ceshi", "pdf");}
    }

//用到的工具类

import java.io.File;
import java.io.FilenameFilter;public class FileManagerFilter implements FilenameFilter {private String name;private String extension;public FileManagerFilter(String name, String extension) {this.name = name;this.extension = extension;}public boolean accept(File dir, String filename) {boolean fileOK = true;String str;char c;if (name == "*"&&extension=="*") {return fileOK = true;}//遍历filename字符串for(int i=0;i<filename.length();i++){//找出filename字符串中的每个字符c =filename.charAt(i);//转换为string类型str = String.valueOf(c);if (name != null&&str.equals(".")) {// 不大解理"&="的运行过程,//找出文件夹中name相同的fileOK &= filename.substring(0, filename.indexOf(".")).equals(name);//匹配以name开头的文件名称
//            fileOK &= filename.startsWith(name);}}if (extension != null) {//匹配以extension 结尾的文件后缀fileOK &= filename.endsWith('.' + extension);}return fileOK;}}

下面的这段代码 是我在项目实战中用到的  仅供参考  强烈建议大家不要盲目的粘贴复制 ,这些代码 是不全的  况且文件定义的规则也是不一样的 只是让大家看看 我是怎么在项目中用这个封装好的工具类。

大家可以先启动一下 上面的 main方法 慢慢的找一下 规则 理解一下

//源文件全路径String docfile = path;//获取文件全名  带后缀String filename = null;//文件名  不带后缀String name = null;File file = new File(docfile);//获取文件名 带后缀filename = file.getName();//获取文件名  不带后缀name = filename.substring(0, filename.indexOf("."));//        System.out.println(name+"name");//用于存放图片的目录SimpleDateFormat formatter = new SimpleDateFormat("/YYYYMM/YYYYMMDD/hhmmss-");String dateString = formatter.format(new Date());String paths = dateString + UUID.randomUUID().toString().replaceAll("-", ""); // 相对路径String spath = paths + name;String outFile = getUploadPath()+spath;//如果目录不存在,就创建新的目录if (!new File(outFile).isDirectory()) {new File(outFile).mkdirs();}//存放PDF的路径和PDF的文件名String toFile = getUploadPath()+ paths + name;//实例化对象WorldToJPGFormatToJPG wj = new FormatToJPG();//将world文件转换为PDF文件   并返回PDF文件的全路径   17 表示文件格式为PDFString filePath = wj.wordToPDF(docfile, toFile, 17);try {//将PDF文件转换为JPG文件pathList = wj.pdfToJPG(filePath, outFile);//删除pdf文件
//                new FileManage().deleteFile(filePath);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}

到这里第一种方法已经结束了

ps:大家可以启动一下 main方法测试一下 在线上调用工具类的时候 千万不忘记把 System级别的打印给删除掉

上述是测试代码。是不是非常简单 也不需要什么依赖包

下面我说另外一种转图片的方法  是用的 oppenOffice

包依赖:这个包需要的话 可以去csdn下载 ,也可以加群 去文件里面自行下载

QQ群号:         808249297

下载链接:https://download.csdn.net/download/weixin_41036106/10711571


import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import java.io.File;
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;public class OfficeToPDF {public void docToPdf(File inputFile, File outputFile){//启动服务String OpenOffice_HOME = "C:/Program Files (x86)/OpenOffice 4";// 这里是OpenOffice的安装目录if(OpenOffice_HOME.charAt(OpenOffice_HOME.length()-1)!='/'){OpenOffice_HOME+="/";}Process pro = null;OpenOfficeConnection connection = null;// 启动OpenOffice的服务String command = OpenOffice_HOME + "program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";// connect to an OpenOffice.org instance running on port 8100try{pro = Runtime.getRuntime().exec(command);connection = new SocketOpenOfficeConnection(8100);connection.connect();// convertDocumentConverter converter = new OpenOfficeDocumentConverter(connection);System.out.println(inputFile+"="+outputFile);converter.convert(inputFile, outputFile);}catch(Exception ex){System.out.println("程序出错了");ex.printStackTrace();}finally{// close the connectionif(connection!=null){connection.disconnect();connection = null;}pro.destroy();}System.out.println("生成"+outputFile.getName());}//生产pdf线程static class TestThread extends java.lang.Thread{private File inputFile;private File outputFile;public void run(){OfficeToPDF t = new OfficeToPDF();t.docToPdf(inputFile, outputFile);System.out.println(outputFile.getName()+"文件已生成");}public void setInputFile(File inputFile) {this.inputFile = inputFile;}public void setOutputFile(File outputFile) {this.outputFile = outputFile;}}}

根据自己的文件生成规则  建立输入 输出路径  (跟上述一样 也是 自己在项目中的代码  请忽粘贴,仅供参考)

SimpleDateFormat formatter = new SimpleDateFormat("/YYYYMM/YYYYMMDD/hhmmss-");String dateString = formatter.format(new Date());String paths = dateString + UUID.randomUUID().toString().replaceAll("-", ""); // 相对路径String spath = paths + attachment.getAttachName();String outFile = getUploadPath()+spath+".pdf";OfficeToPDF wordToPDF = new OfficeToPDF();wordToPDF.docToPdf(new File(path), new File(outFile));//实例化对象WorldToJPGFormatToJPG wj = new FormatToJPG();//将PDF文件转换为JPG文件String pathJPG =getUploadPath()+ paths+"JPG" + attachment.getAttachName();try {pathList = wj.pdfToJPG(outFile, pathJPG);} catch (IOException e) {e.printStackTrace();}

大家可能 很男理解这几段代码  我解释一下  我之所以 用完 oppenOffice 这个工具类  在用方法一 讲的 那个工具类 原因就是 我这边 是将excel 转pdf   现在就是在把生成的pdf用第一种方法 转成 图片

下片文章我将为大家讲述一下  world、PDF、excel如何生成 html

欢迎大家加java交流群,有问题我们可以一同探讨。

群号:808249297

二维码:

Java中world、PDF、Excel转图片相关推荐

  1. java中生成pdf,插入图片,页眉、页脚、表格

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java中生成pdf,插入图片,页眉.页脚.表格 import com.lowagie.text.*; import com.lowagie.te ...

  2. java 合并pdf,如何在Java中合并PDF

    如何在Java中合并PDF 为小型企业和大型企业,保持 您的 重要 文件, 组织将提高您的工作流程,并成倍增长你的组织的工作效率. PDF文档由于其接受的输入格式的类型的安全性和灵活性,通常是共享大量 ...

  3. 你知道如何快捷地在Java中使用现有Excel数据创建PPT图表吗?

    Spire.Office for .NET是一套企业级的涵盖 E-iceblue 所有 .NET Office 组件的集合.使用 Spire.Office for .NET,开发人员可以创建大量的用于 ...

  4. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  5. Java 中调用 Apache API 实现图片文件的 压缩 与 解压 实例

    < Java 中调用 Apache API 实现图片文件的 压缩 与 解压 > 为什么不直接使用 Java JDK 中自带的 API 呢?必须使用 Apache API 实现文件的压缩与解 ...

  6. java实现word,pdf,excel,图片添加水印

    gitee项目地址:https://gitee.com/betelnutandwine/meutilswatermark: java实现pdf,word,excel,ppt,图片加水印 jar地址:s ...

  7. 朝花夕拾:Java中实现对EXCEL文件的读取

    在项目中实现读取EXCEL文件中的数据是实现工作项目中数据读取的常用方式.这个对于之前无论写C/C++还是后来写Java来读取txt数据的我来说都是一个新的方式.新的技巧,相信对刚入手的很多小伙伴都是 ...

  8. Java Word转PDF Excel转PDF

    前提:Windows环境 在项目中,有需求Word转PDF或者Excel转PDF,例举一个简单有效的转换工具. Windows环境亲测有效. Maven项目依赖: <!-- https://mv ...

  9. Java 中如何过滤 Excel 文件

    现有Excel文件emp.xlsx,部分数据如下: EID NAME SURNAME GENDER STATE BIRTHDAY HIREDATE DEPT SALARY 1 Rebecca Moor ...

  10. java实现给PDF文件添加图片水印,java实现给PDF文件添加文字水印

    接上一篇,pdf跟tif 是一起做的 java实现 1.给PDF文件添加图片水印: public static void waterMark1(String inputFile,String outp ...

最新文章

  1. 怎么查看oracle数据库数据量大小?
  2. 计算机视觉、机器学习、人工智能领域知识汇总
  3. redis将散裂中某个值自增_0基础掌握Django框架(49)Redis
  4. verilog语法学习心得
  5. 云计算开发一般负责什么工作呢?云计算是做什么的?
  6. DM368开发 -- 视频监控系统相关技术研究(转毕设)
  7. linux下1060显卡驱动安装,ubuntu16.04 联想拯救者y7000笔记本电脑安装1060显卡驱动,及ubuntu16.04更新内核...
  8. Linux常用命令:系统信息、关机重启、文件和目录操作、文件搜索、文件权限、挂载、磁盘空间、用户及群组、解压缩、备份等操作。
  9. 配置OPTIONS方法服务器响应,nginx设置X-Frame-Options的两种方法
  10. O2O之下,腾讯觊夺移动支付大数据,手Q支付出战支付宝
  11. [JZOJ3385] [NOIP2013模拟] 黑魔法师之门 解题报告(并查集)
  12. 楼兰古城如何变成了沙漠戈壁的
  13. 统计相关总结(AWK等)
  14. docx转换为doc格式,公式变成图片问题,word2016
  15. 记录一下Android开发中遇到的问题和解决方案
  16. 阿里云 龙珠机器学习训练营Task1:机器学习算法(一): 基于逻辑回归的分类预测
  17. PayPal Data Scientist实习面试经历
  18. 找不到Dock栏了?快速找到Dock栏的办法
  19. Java面试题整理一(反射)
  20. 2014吾爱破解论坛精华贴

热门文章

  1. 笔的图片 html,笔的素描画图片
  2. Python中字符串转义字符的用法----退格符\b
  3. 2.4g语音遥控器小结
  4. Fiddler4下载安装和火狐搭配使用
  5. 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)
  6. 壹账通否认财务造假,此前市值已蒸发近8成
  7. windows10电脑在哪配置DNS
  8. where和group by能一起使用吗?
  9. C++实现批量文件重命名
  10. 玩机器人可以学到什么?