package com.hyzs.szcg.doc.utils; import com.hyzs.gz.common.core.exception.CommonException; import lombok.extern.slf4j.Slf4j; import org.apache.poi.xwpf.converter.pdf.PdfConverter; import org.apache.poi.xwpf.converter.pdf.PdfOptions; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.*; /** * 使用poi docx转pdf * 问题 : 当docx中的 中文 为宋体正文(宋体可以)是 在pdf中会出现中文丢失情况 * */ @Slf4j public class DocxToPdf { public static void docxToPdf(String wordUrl, String pdfUrl) throws IOException { File file=new File(wordUrl); if(!file.exists()){ log.error("io error -> docx->pdf word文件不存在》"+wordUrl); throw CommonException.exception("io error word文件不存在"); } InputStream in_stream = new FileInputStream(wordUrl);// 文件流 XWPFDocument doc = new XWPFDocument(in_stream); OutputStream outStream = getOutFileStream(pdfUrl); PdfOptions options = PdfOptions.create(); PdfConverter.getInstance().convert(doc, outStream, options); outStream.close(); } protected static OutputStream getOutFileStream(String outputFilePath) throws IOException { File outFile = new File(outputFilePath); outFile.getParentFile().mkdirs(); outFile.createNewFile(); FileOutputStream oStream = new FileOutputStream(outFile); return oStream; } }
docx转pdf
最新推荐文章于 2023-11-24 15:32:34 发布