请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Java实现Word/Excel/TXT转PDF

[复制链接]
查看: 49|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
70839
发表于 2020-1-15 10:21 | 显示全部楼层 |阅读模式
引言:
  前段时候公司做的教育系统,系统需要实时记录用户进修课程的情况和时候,所以对一些除视频课程之外,对一些文本文档型课件一样如此,初度的计划是讲office相关典范的文件举行转换Html文件,然后展现对应的html文件,PC端差不多没题目了,可是个体文件再转换html以后,款式出现了庞杂,立即做了编码转换处置赏罚,可是照旧有个体乱码,末端改变计划,末端同一将文件转为pdf,然后经过流的方式在前端展现,其中包含Word Excel PPT TXT PDF等文件,代码以下:
   备注:本来是可以间接展现pdf的,可是Andior上pdf展现不了,末端同一就用IO流的方式举行读取展现了.
1:增加maven依靠
  1.                     aspose            pdf            11.5.0                            aspose            words            16.4.0                            aspose            cell            8.9.2                            aspose            pdf            11.5.0        
复制代码
2:增加license-excel.xml文件(Resource文件夹下)
  1.             Aspose.Total for Java      Aspose.Words for Java        Enterprise    20991231    20991231    8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7    sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=
复制代码
3:代码以下:
  3.1获得License文件
  1. 1 public static boolean getLicense(){ 2         boolean result = false; 3         InputStream is =  null; 4         try{ 5              6             is =UploadFiles.class.getClassLoader().getResourceAsStream("license-excel.xml"); 7             License aposeLic = new License(); 8             aposeLic.setLicense(is); 9             result = true;10         }catch(Exception e){11             e.printStackTrace();12         }finally{13             try {14                 is.close();15             } catch (IOException e) {16                 // TODO Auto-generated catch block17                 e.printStackTrace();18             }19         }20         return result;21     }
复制代码
3.2:文本文件转码
  1. 1   /* 将txt 转换编码 2    * @param file 3    * @author zsqing 4   */ 5 public File saveAsUTF8(File file){ 6         String code = "gbk"; 7         byte[] head = new byte[3]; 8         try { 9             InputStream inputStream = new FileInputStream(file);10             inputStream.read(head);11             if (head[0] == -1 && head[1] == -2) {12                 code = "UTF-16";13             } else if (head[0] == -2 && head[1] == -1) {14                 code = "Unicode";15             } else if (head[0] == -17 && head[1] == -69 && head[2] == -65) {16                 code = "UTF-8";17             }18             inputStream.close();19 20             System.out.println(code);21             if (code.equals("UTF-8")) {22                 return file;23             }24             String str = FileUtils.readFileToString(file, code);25             FileUtils.writeStringToFile(file, str, "UTF-8");26             System.out.println("转码竣事");27         } catch (FileNotFoundException e) {28             e.printStackTrace();29         } catch (IOException e) {30             e.printStackTrace();31         }32 33         return file;34     }
复制代码
3.3:word和txt转换pdf
  1. 1 /** 2  * 将word txt转换成pdf 3  * @param inPath 4  * @param outPath 5  * @author zsqing 6 */ 7 public  void wordAndTextToPdf(String inPath, String outPath ,String localIP,HttpServletRequest request) 8     { 9         String fileToPdfUrl="";10         boolean flag = false;11         File file = null;12         FileOutputStream os = null;13         try14         {15             //long old = System.currentTimeMillis();16             // 新建一个空缺文档17             file = new File(outPath);18             file = saveAsUTF8(file);19             os = new FileOutputStream(file);20             // InPath是将要被转化的文档21             com.aspose.words.Document doc = new com.aspose.words.Document(inPath);22             /*23              * 周全支持DOC,DOCX举行OOXML,RTF,HTML,OpenDocument,PDF,EPUB,XPS,SWF间转换24              */25             doc.save(os, SaveFormat.PDF);26             flag = true;27             //long now = System.currentTimeMillis();28             //System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时29             30         }31         catch (Exception e)32         {33             e.printStackTrace();34         }35         finally36         {37             try38             {39                 if (os != null)40                 {41                     os.close();42                 }43             }44             catch (Exception e)45             {46                 e.printStackTrace();47             }48             if (!flag)49             {50                 file.deleteOnExit();51             }52         }53     }
复制代码
3.4:Excel转换pdf
  1. 1 /** 2  * 将docx转换成pdf 3  * @param inPath 4  * @param outPath 5  * @author zsqing 6  */ 7  public  void wordToPdf(String inPath, String outPath ,String localIP,HttpServletRequest request) 8     { 9         String fileToPdfUrl="";10         boolean flag = false;11         File file = null;12         FileOutputStream os = null;13         try14         {15             //long old = System.currentTimeMillis();16             // 新建一个空缺文档17             file = new File(outPath);18             file = saveAsUTF8(file);19             os = new FileOutputStream(file);20             // InPath是将要被转化的文档21             com.aspose.words.Document doc = new com.aspose.words.Document(inPath);22             /*23              * 周全支持DOC,DOCX举行OOXML,RTF,HTML,OpenDocument,PDF,EPUB,XPS,SWF间转换24              */25             doc.save(os, SaveFormat.PDF);26             flag = true;27             //long now = System.currentTimeMillis();28             //System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时29             30         }31         catch (Exception e)32         {33             e.printStackTrace();34         }35         finally36         {37             try38             {39                 if (os != null)40                 {41                     os.close();42                 }43             }44             catch (Exception e)45             {46                 e.printStackTrace();47             }48             if (!flag)49             {50                 file.deleteOnExit();51             }52         }53     }
复制代码
近来工作有些忙写的就少了,2020年第一篇与大家分享,一路进修,配分解长!

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表