• Java实现word转PDF


    使用 aspose-words 进行转换

    方案一:

    <dependency>
      <groupId>com.asposegroupId>
      <artifactId>aspose-wordsartifactId>
      <version>0.0.1-SNAPSHOTversion>
      <scope>systemscope>
      <systemPath>${project.basedir}/src/main/resources/aspose-words-15.8.0-jdk16.jarsystemPath>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    因为 aspose-words-15.8.0-jdk16.jar 从中央仓库拉取不到,所以从固定位置加载(如果能拉取到就直接指定),其中
    system 表示这个依赖项将从本地文件系统的一个具体位置加载,而不是从Maven中央仓库或其他远程仓库。
    systemPath 指定了JAR文件在本地系统上的确切路径。

    方案二:

    <dependency>
      <groupId>com.luhuiguogroupId>
      <artifactId>aspose-wordsartifactId>
      <version>22.10version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这个中央仓库能拉取到

    代码实现:

    public void exportFile() {
        // wordPath 表示word文档地址
        String wordPath = "E:\IdeaProjects\files\download\cesdata.docx";
        File file = new File(wordPath);
        // 获取文件数据
        byte[] fileData = getFileData(wordPath);
        // pdfPath 表示PDF输出地址
        String pdfPath = "E:\IdeaProjects\files\download\cesdata.pdf";
    
        // 使用方案一需要设置license,不设置会有水印(方案二测试不设置也不会有水印,加上也行)
        String s = "Aspose.Total for JavaAspose.Words for JavaEnterprise20991231209912318bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=";
        ByteArrayInputStream is = new ByteArrayInputStream(s.getBytes());
        License license = new License();
        license.setLicense(is);
    
        // 导出文件
        try (InputStream inputStream = new ByteArrayInputStream(fileData)) {
            com.aspose.words.Document document = new com.aspose.words.Document(inputStream);
            document.save(Files.newOutputStream(new File(pdfPath).toPath()), SaveFormat.PDF);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    // 获取文件数据
    public byte[] getFileData(String filePath) {
        try (FileInputStream fis = new FileInputStream(filePath);
             ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) != -1) {
                bos.write(buffer, 0, length);
            }
            return bos.toByteArray();
        } catch (Exception err) {
            return null;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    FireFox火狐浏览器电脑端安装到D盘
    时间复杂度和空间复杂度详解
    DDD领域驱动中的支撑域、通用域、核心域
    【Selenium】Selenium4 Grid
    按照模板导出复杂样式的excel
    C语言等长编码压缩和哈夫曼编码压缩
    Webpack性能优化 SplitChunksPlugin的使用详解
    LInux学习------高级IO
    数据库理论 06 存储管理和索引——基于《数据库系统概念》第七版
    DPU — 功能特性 — 安全系统的硬件卸载
  • 原文地址:https://blog.csdn.net/qq_42629988/article/details/136485846