用Aspose-Java免费实现 PDF、Word、Excel、Word互相转换并将转换过得文件上 ...

打印 上一主题 下一主题

主题 927|帖子 927|积分 2781

嘿嘿嘿、嘿嘿,俺又回来了!

github代码地址https://github.com/Tom-shushu/work-study
接口文档有道云https://note.youdao.com/s/GShGsYE8
接口文档离线版本https://files.cnblogs.com/files/Tom-shushu/%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3.rar?t=1682958343&download=true
一、为什么停更了四五个月

怎么说呢,从去年十二月份(就是我发最后一篇文章时间)到现在已经四五个月了,这段时间感觉生活很乱,我在安安心心上班、边上班边学习新知识新技术然后跳槽到大厂、边上班边考《系统架构设计师》这三件事情之间徘徊犹豫一直持续到现在,所以导致一样事情也没有干好  -------   总结一句:为什么没有更博客呢?一个字,就是懒,嘿嘿~
还有一个原因:就是最近朋友给介绍了一个对象,比较忙(*^▽^*)
为什么发布这篇文档转换的文章呢?因为上周我要将一个PDF转换为Word,结果百度谷歌了所有文章,最终的结果都是“能转换,但是只能转换一点点,多了就要收费”,于是乎我突发奇想、心血来潮在放假的那天打算开发一款小程序实现各种文档的转换,在百度了一下午后发现目前都是借助Aspose实现的,但是好像要收费,在我新建项目时偶然间发现原来Maven仓库里面居然有人将破解好的Jar包上传到Maven中央仓库了,于是我测试了一下,哈哈真香,于是就有了这篇文章。至于小程序做的怎么样了呢?暂时又搁置了,因为我调查了一下已经有现成的好多优秀的微信小程序可以实现各种文档转换了,还有就是个人小程序没法上线,可能暂时不会做小程序了,大家有想法的可以按照自己的想法使用我的源码,直接和前端对接做出优秀的小程序。
二、PDF相关文件操作

1.引入依赖
  1.         <dependency>
  2.             <groupId>com.luhuiguo</groupId>
  3.             <artifactId>aspose-pdf</artifactId>
  4.             <version>23.1</version>
  5.         </dependency>
复制代码
2.代码实现(只贴关键代码,代码我会放到GitHub跟Gitee上面,大家自取、还有完整的接口文档我都会放出来)

① 上传OSS工具类  OssUpLoadTools
  1. /**
  2.       * @description:  获取文件保存地址
  3.       * @return: java.lang.String
  4.       * @author: zhouhong
  5.       * @date: 2023/4/30 12:36
  6.       */
  7.     public String getSavePath() {
  8.         ApplicationHome applicationHome = new ApplicationHome(this.getClass());
  9.         // 保存目录位置根据项目需求可随意更改
  10.         return applicationHome.getDir().getParentFile()
  11.                 .getParentFile().getAbsolutePath() + "\\src\\main\\resources\\templates\";
  12.     }
  13.     /**
  14.       * @description:  上传文件到阿里云OSS
  15.       * @return: java.lang.String
  16.       * @author: zhouhong
  17.       * @date: 2023/5/1 22:55
  18.       */
  19.     public String uploadOssFile(String fileName, File file){
  20.         // 创建OSSClient实例。
  21.         OSS ossClient = ossConfig.getOssClient();
  22.         try {
  23.             // 创建PutObjectRequest对象。
  24.             PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfig.getBucketName(),
  25.                     fileName, file);
  26.             putObjectRequest.setProcess("true");
  27.             // 上传文件。
  28.             PutObjectResult result = ossClient.putObject(putObjectRequest);
  29.             // 如果上传成功,则返回200。
  30.             if (result.getResponse().getStatusCode() == 200) {
  31.                 return result.getResponse().getUri();
  32.             }
  33.         } catch (OSSException oe) {
  34.         } catch (ClientException ce) {
  35.         } finally {
  36.             if (ossClient != null) {
  37.                 ossClient.shutdown();
  38.             }
  39.         }
  40.         return null;
  41.     }
复制代码
② PDF转其他文件

[code]    /**      * @description: PDF 转其他文件      * @return: java.util.List      * @author: zhouhong      * @date: 2023/5/1 23:34      */    @Override    public List pdfToFile(MultipartFile file,String type) {        List res = new ArrayList();        String checkType = FilenameUtils.getExtension(file.getOriginalFilename());        if (!"pdf".equals(checkType)) {            throw new ServiceException(1, "输入文件不是PDF文件!");        }        try {            switch (type.toUpperCase()) {                case "WORD" : {                    return switchFile(file, com.aspose.pdf.SaveFormat.DocX, "docx");                }                case "XML" : {                    return switchFile(file, SaveFormat.PdfXml, "xml");                }                case "EXCEL" : {                    return switchFile(file, com.aspose.pdf.SaveFormat.Excel, "xlsx");                }                case "PPT" : {                    return switchFile(file, com.aspose.pdf.SaveFormat.Pptx, "pptx");                }                case "PNG" : {                    // 图片类型的需要获取每一页PDF,一张一张转换                    Document pdfDocument = new Document(file.getInputStream());                    //分辨率                    Resolution resolution = new Resolution(130);                    PngDevice pngDevice = new PngDevice(resolution);                    //                    if (pdfDocument.getPages().size()
回复

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表