【java工具类】word文件转pdf功能

项目需要使用java将后台生成的word文件转化为pdf,第一次做这个所以找了很多资料和代码,但一直都有问题。
有的可以转化但在第一页有水印:Evaluation Warning: The document was created with Spire.Doc for JAVA.
解决的方式就是给word添加一个空的首页,生成PDF后去除该pdf的首页即可
,代码和jar包如下,需要的小伙伴们可以自行下载复制使用。


一、 jar包

1、spire.doc-2.2.0.jar,必须是这个版本,亲测可用

官网(不推荐):https://www.e-iceblue.cn/
下载jar包(推荐)
百度网盘链接:https://pan.baidu.com/s/1RTHDrIoKk2sPXegv-ZEZ8g
提取码:z7tw
下载完成后将该jar包导入到项目中

2、itextpdf包,版本要求不高,可按需要更改

使用maven引用:

<dependency>
   <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13</version>
</dependency>

二、代码如下

package com.pdf.utils;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.spire.doc.*;
import org.apache.commons.lang3.StringUtils;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * word转pdf工具类
 */
public class WordToPdf {

    /**
     * word转pdf工具类
     * @param path 需要转换的word文件地址
     * @return String pdf版地址
     */
    public static void wordToPdf(String path){
        //首页带有红色水印的版本路径(可设为自己的路径)
        String test = "D:\\test\\test.pdf";
        //转化最终结果路径(可设为自己的路径)
        String reason = "D:\\test\\reason.pdf";
        
        try {
            Document document = new Document();
            document.loadFromFile(path);
            //输出为PDF,此时pdf文件首页带有红色水印
            document.saveToFile(test, FileFormat.PDF);
			
            //删除pdf文件带水印信息的第一页,并重新输出为PDF
            PdfReader reader = new PdfReader(test);
            List<String> pages = new ArrayList<>();
            for (int i = 2; i <= reader.getNumberOfPages(); i++) {
                pages.add(String.valueOf(i));
            }
            reader.selectPages(StringUtils.join(pages, ","));
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(reason));
            stamp.close();
            reader.close();
        } catch (Exception e){
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
    	//再次提示,该方法生成的pdf首页有红色水印,本代码会删除生成pdf的首页,所以可在word文件的首页添加一页空白页,防止生成pdf缺少首页数据
        String path = "D:\\test\\测试.docx";
        wordToPdf(path);
    }
}


三、测试如下

以下是我的测试文件及结果文件在wps中打开的效果
1、word文件:测试.docx
在这里插入图片描述
2、test文件:test.pdf。首页有红色的水印
在这里插入图片描述
3、reason文件:reason.pdf。去除首页之后的结果文件
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值