JAVA实现Word转Pdf文件

JAVA实现Word转Pdf文件

本文使用aspose实现将word完美转成pdf文件。

1. 下载aspose.words破解版

​ Aspose.Words是一款先进的类库,通过它可以直接在各个应用程序中执行各种文档处理任务。Aspose.Words支持DOC,OOXML,RTF,HTML,OpenDocument, PDF, XPS, EPUB和其他格式。使用Aspose.Words,可以生成,更改,转换,渲染和打印文档而不使用Microsoft Word。

​ 但是Aspose.Words使用是收费,而且它还有水印、页数的限制,所以我们使用破解版(嘻嘻)。完美解决以上问题,有兴趣的朋友可以去看破解教程,自己破解,没兴趣的可以直接下载下面的jar包。

链接:https://pan.baidu.com/s/1sigqWqBjfHrxbpzOcUOERA?pwd=THJL 
提取码:THJL

下载好jar包后将其放入maven本地仓库,便于后期在项目pom文件中引用,前提本地已有maven环境。在cmd中输入以下命令:

mvn install:install-file -DgroupId=com.aspose -DartifactId=aspose-words -Dversion=15.8.0 -Dpackaging=jar -Dfile=D:\aspose-words-15.8.0-jdk16.jar

2.进一步破解

单纯使用jar包还是不行,需要在项目resources下面新建一个license.xml文件。在后面使用时引用该文件,即可去掉水印,以及页数限制。


<License>
    <Data>
        <Products>
            <Product>Aspose.Total for JavaProduct>
            <Product>Aspose.Words for JavaProduct>
        Products>
        <EditionType>EnterpriseEditionType>
        <SubscriptionExpiry>20991231SubscriptionExpiry>
        <LicenseExpiry>20991231LicenseExpiry>
        <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7SerialNumber>
    Data>
    <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=Signature>
License>

3.具体使用方法

新建一个Word转Pdf的工具类

import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * @author: YSL
 * @date: 2022/8/1 16:29
 *
 *
 * word转pdf工具类
 */
public class WordToPdfAsposeUtil {

    private static final Logger logger = LoggerFactory.getLogger(WordToPdfAsposeUtil.class);

    /**
     * 获取aspose证书
     * @auther: YSL
     * @date: 2022/8/2 12:10 
     * @return boolean
     */
    private static boolean getLicense() {
        boolean result = false;
        InputStream is = null;
        try {
            Resource resource = new ClassPathResource("license.xml");
            is = resource.getInputStream();
            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;
    }

    /**
     * word转pdf静态方法
     * @auther: YSL
     * @date: 2022/8/2 12:08
     * @param inPath word文件全路径含文件名
     * @param outPath pdf输出全路径含文件名
     * @return boolean
     */
    public static boolean docToPdf(String inPath, String outPath) {
        // 验证License 若不验证则转化出的pdf文档会有水印产生
        if (!getLicense()) {
            return false;
        }
        FileOutputStream os = null;
        try {
            long old = System.currentTimeMillis();
            // 新建一个空白pdf文档
            File file = new File(outPath);
            os = new FileOutputStream(file);
            // inPath是将要被转化的word文档
            Document doc = new Document(inPath);
            // 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,EPUB, XPS, SWF 相互转换
            doc.save(os, SaveFormat.PDF);
            long now = System.currentTimeMillis();
            // 转化用时
            logger.info("word转换pdf成功,共耗时:" + ((now - old) / 1000.0) + "秒");
        } catch (Exception e) {
            logger.info("word转pdf失败",e);
            return false;
        }finally {
            if (os != null) {
                try {
                    os.flush();
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return true;
    }
}

然后调用docToPdf()方法即可。10.5MB的Word转换Pdf平均耗时6秒,生成的pdf大小为2.22MB。

4.结束

生活如此美好,方法备份就好 -,如果公司项目,请支持正版Aspose。

你可能感兴趣的:(Java文件处理,Java后端技术,java,开发语言)