浙江建设信息网青岛seo公司
前言
java实现word文档转PDF,PDF转word
解决只能转换4页问题
解决每页头部存在水印问题
实现
引入依赖
<dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactId><version>1.0.3</version>
</dependency>
<dependency><groupId>com.documents4j</groupId><artifactId>documents4j-transformer-msoffice-word</artifactId><version>1.0.3</version>
</dependency>
破解的jar包
链接: https://pan.baidu.com/s/1MO8OBuf4FQ937R9KDtofPQ 提取码: 4tsn
package com.common.util;import com.aspose.pdf.Document;
import com.aspose.pdf.SaveFormat;
import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;import java.io.*;/*** PDF转换工具类* @author yyq*/
public class PdfUtil {public static void main(String[] args) {//pdfToObj("C:\\Users\\Administrator\\Desktop\\测试.pdf", "docx");String filePath = "C:\\Users\\Administrator\\Desktop\\测试.docx";String outFilePath = "C:\\Users\\Administrator\\Desktop\\测试.pdf";objToPdf(filePath, outFilePath, "docx");}/*** PDF 转 doc、Excel、xml* @param pdfPath 需要转换的pdf路径* @param suffix 文件后缀*/public static void pdfToObj(String pdfPath, String suffix) {long old = System.currentTimeMillis();FileOutputStream os = null;try {// 新建一个word文档String wordPath = pdfPath.substring(0, pdfPath.lastIndexOf(".")) + "." + suffix;os = new FileOutputStream(wordPath);// doc是将要被转化的word文档Document doc = new Document(pdfPath);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换if(suffix.equals("doc")){doc.save(os, SaveFormat.Doc);}else if(suffix.equals("docx")){doc.save(os, SaveFormat.DocX);}else if(suffix.equals("xls") || suffix.equals("xlsx")){doc.save(os, SaveFormat.Excel);}else if(suffix.equals("html")){doc.save(os, SaveFormat.Html);}else if(suffix.equals("xml")){doc.save(os, SaveFormat.Xml);}os.close();// 转化耗时long now = System.currentTimeMillis();long useTime = ((now - old) / 1000);System.out.println("Pdf 转 Word 共耗时:" + useTime + "秒");} catch (Exception e) {System.out.println("Pdf 转 Word 失败...");e.printStackTrace();}finally {try {os.close();} catch (IOException e) {e.printStackTrace();}}}/*** txt、doc、Excel、xml 转 PDF* @param oidPath 需要转的文件路径* @param newPath 转成的PDF文件路径*/public static void objToPdf(String oidPath, String newPath, String suffix){InputStream inputStream = null;OutputStream outputStream = null;IConverter converter = null;try {// 源文件地址File oidFile = new File(oidPath);// 导出文件地址File newFile = new File(newPath);// 文件读取inputStream = new FileInputStream(oidFile);outputStream = new FileOutputStream(newFile);// 开始转换converter = LocalConverter.builder().build();boolean flag = false;if(suffix.equals("doc")){flag = converter.convert(inputStream).as(DocumentType.DOC).to(outputStream).as(DocumentType.PDF).execute();}else if(suffix.equals("docx")){flag = converter.convert(inputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();}else if(suffix.equals("txt")){flag = converter.convert(inputStream).as(DocumentType.TEXT).to(outputStream).as(DocumentType.PDF).execute();}else if(suffix.equals("xls")){flag = converter.convert(inputStream).as(DocumentType.XLS).to(outputStream).as(DocumentType.PDF).execute();}else if(suffix.equals("xlsx")){flag = converter.convert(inputStream).as(DocumentType.XLSX).to(outputStream).as(DocumentType.PDF).execute();}else if(suffix.equals("html")){flag = converter.convert(inputStream).as(DocumentType.MHTML).to(outputStream).as(DocumentType.PDF).execute();}else if(suffix.equals("xml")){flag = converter.convert(inputStream).as(DocumentType.XML).to(outputStream).as(DocumentType.PDF).execute();}if (flag) {converter.shutDown();}inputStream.close();outputStream.close();System.out.println("转换成功");} catch (Exception e) {converter.shutDown();e.printStackTrace();System.out.println("转换失败");}finally {try {inputStream.close();outputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
源码路径:https://download.csdn.net/download/weixin_43992507/88215577