首页 > 编程语言 >java实现Word转Pdf,亲测可用

java实现Word转Pdf,亲测可用

时间:2024-12-05 19:54:53浏览次数:7  
标签:xml Word String java return new Pdf pdf os

一、引入maven包,如果包引不进来下载jar包: https://pan.baidu.com/s/1sr3AdE2QWPN7rM-JwWnF2w?pwd=6xgf 提取码: 6xgf 
<dependency>
   <groupId>com.aspose</groupId>
   <artifactId>aspose-words</artifactId>
   <version>15.8.0</version>
</dependency>


二、在静态资源目录resources下添加一个license.xml文件,不然生成的pdf会有水印
<?xml version="1.0" encoding="UTF-8" ?>
<License>
    <Data>
        <Products>
            <Product>Aspose.Total for Java</Product>
            <Product>Aspose.Words for Java</Product>
        </Products>
        <EditionType>Enterprise</EditionType>
        <SubscriptionExpiry>20991231</SubscriptionExpiry>
        <LicenseExpiry>20991231</LicenseExpiry>
        <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
    </Data>
    <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>

三、添加Word2PdfAsposeUtil工具类

public class Word2PdfAsposeUtil {


    public static boolean getLicense() {
        boolean result = false;
        InputStream is = null;
        try {
            Resource resource = new ClassPathResource("license.xml");
            is = resource.getInputStream();
            //InputStream is = Word2PdfAsposeUtil.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
            License aposeLic = new License();
            aposeLic.setLicense(is);
            result = true;
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return result;
    }

    public static boolean doc2pdf(String inPath, String outPath) {
        if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
            return false;
        }
        FileOutputStream os = null;
        try {
            long old = System.currentTimeMillis();
            File file = new File(outPath); // 新建一个空白pdf文档
            os = new FileOutputStream(file);
            Document doc = new Document(inPath); // Address是将要被转化的word文档
            doc.save(os, SaveFormat.PDF);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,
            // EPUB, XPS, SWF 相互转换
            long now = System.currentTimeMillis();
            System.out.println("pdf转换成功,共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }finally {
            if (os != null) {
                try {
                    os.flush();
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return true;
    }

    public static void main(String[] arg){
        String docPath = "D:\\report\\word\\交通态势日报-2021-01-10.docx";
        String pdfPath = "D:\\report\\word\\交通态势日报-2021-01-10.pdf";
        Word2PdfAsposeUtil.doc2pdf(docPath,pdfPath);
    }
}

参考文档:https://www.cnblogs.com/adolph2715/p/14346140.html

标签:xml,Word,String,java,return,new,Pdf,pdf,os
From: https://www.cnblogs.com/wj123bk/p/18589313

相关文章

  • 解锁 JavaScript 魔力:不容错过的代码小妙招(一)
    JavaScript开发小技巧:编程魔法大揭秘......
  • 解锁 JavaScript 魔力:不容错过的代码小妙招(二)
    嘿,各位编程大侠们!在上一篇《解锁JavaScript魔力:不容错过的代码小妙招(一)》中,我们一同领略了JavaScript世界里部分神奇小妙招的魅力。现在,让我们继续这场充满惊喜的编程之旅,探索更多能让你的代码如魔法般酷炫的小技巧。......
  • 【Java】Scanner类的使用
    Scanner类:从输入源(键盘)读取数据(Java自己已经写好的一个类)使用:1.导入Scanner类:importjava.util.Scanner;(为使用Scanner类做准备)2.创建Scanner类的对象:Scanner对象名=newScanner(System.in);3.读取数据:inta=对象名.nextInt();//表示读取整数         ......
  • 【Java】Switch语句、循环语句(for、while、do...while)
    Switch语句:针对某个表达式的值进行判断,从而决定执行哪一段代码语法格式:switch(表达式){      case目标值1:              执行语句1                      break;       case目标值2:   ......
  • Java Objects.equals 比较demo
    JavaObjects.equals比较demopackagecom.example.core.mydemo.java3;importjava.util.Objects;/***output:flag=falseflag2=trueflag3=falseflag4=trueflag5=trueflag6=trueflag7=falseflag8=trueflag9=false*/publicclassObjectsTest{......
  • 深入理解Java动态代理:从传统实现到动态代理的演变
    深入理解Java动态代理:从传统实现到动态代理的演变引言在面向对象编程中,代理模式是一种设计模式,它允许为其他对象提供一种代理以控制对这个对象的访问。Java中的动态代理提供了无需修改源代码即可增强方法行为的能力,这在AOP(面向切面编程)和框架开发中尤为重要。本文将通过一个用户......
  • JavaScript正则表达式总结
    正则表达式•     介绍•     语法•     元字符•     修饰符•     目标:学习正则表达式概念及语法,编写简单的正则表达式实现字符的查找或检测。1.1  什么是正则表达式•     正则表达式(RegularExpression)是用于匹配字符串中......
  • Java String类
    字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。创建字符串创建字符串最简单的方式如下:Stringgreeting="Helloworld!";在代码中遇到字符串常量时,这里的值是"Helloworld!",编译器会使用该值创建一个String对象。和其......
  • 手把手教你从头编写 PDF – 第 6 部分:路径对象
    上一篇:手把手教你从头编写PDF–第5部分:Helloworld在第四部分中我曾提到,PDF是通过加载一系列命令(存放在流对象中)绘制出来的。通过这些命令,PDF查看器可以解析如何绘制页面上所有的内容。在本文中,我将探索图形命令,并通过文本编辑器创建一个PDF,让它在页面上画几条线。在......
  • 超星学习通(学银在线)视频课件课程下载工具,如何在电脑端下载超星学习通(学银在线)视频
    一.安装超星学习通(学银在线)课程下载器1.获取学无止下载器https://www.xuewuzhi.cn/chaoxing_downloader2.下载安装后,然后点击桌面快捷方式运行即可。注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。二.使用说明1.学无......