java实现doc文档转pdf
首先需要添加相关依赖,因为我项目中使用guava的,因此在这里需要将此依赖中的guava依赖排除,避免出现依赖冲突。最好我们调用工具类中的wordToPdf方法将文件地址传入即可,生成的文件地址可以自行更改。因为项目中需要将用户上传的doc文档转成pdf格式,网上找了很多方案,最终选择使用。此方法缺点是需要在服务器上安装office或者wps。然后创建一个PDFUtil工具类。documents4
·
因为项目中需要将用户上传的doc文档转成pdf格式,网上找了很多方案,最终选择使用
documents4j的方式。
首先需要添加相关依赖,因为我项目中使用guava的,因此在这里需要将此依赖中的guava依赖排除,避免出现依赖冲突。
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-local</artifactId>
<version>1.0.3</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-transformer-msoffice-word</artifactId>
<version>1.0.3</version>
</dependency>
然后创建一个PDFUtil工具类
package com.donlim.fms.common.helper.pdf;
import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author 李安山
* @date 2023/9/6
* @version 1.0
*/
public class PDFUtils {
/**
* word文档转pdf
* @param fileName 文件地址 (绝对地址)
* @return
* @throws IOException
*/
public static String wordToPdf(String fileName) throws IOException {
String newFileName = null;
File inputWord = new File(fileName);
if (fileName.contains("docx")){
newFileName = fileName.replace("docx","pdf");
} else {
newFileName = fileName.replace("doc","pdf");
}
File outputFile = new File(newFileName);
InputStream docxInputStream = new FileInputStream(inputWord);
OutputStream outputStream = new FileOutputStream(outputFile);
IConverter converter = LocalConverter.builder().build();
converter.convert(docxInputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();
converter.shutDown();
inputWord.delete();
docxInputStream.close();
outputStream.close();
inputWord.exists();
outputFile.exists();
return newFileName;
}
}
最好我们调用工具类中的wordToPdf方法将文件地址传入即可,生成的文件地址可以自行更改
此方法缺点是需要在服务器上安装office或者wps。否则转换会失败
更多推荐
所有评论(0)