diff --git a/src/main/java/com/sztzjy/linkCommerce/util/pdfUtils/PDFConvertUtil.java b/src/main/java/com/sztzjy/linkCommerce/util/pdfUtils/PDFConvertUtil.java index bd3425e..e908cb1 100644 --- a/src/main/java/com/sztzjy/linkCommerce/util/pdfUtils/PDFConvertUtil.java +++ b/src/main/java/com/sztzjy/linkCommerce/util/pdfUtils/PDFConvertUtil.java @@ -11,6 +11,8 @@ import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import org.apache.poi.hslf.usermodel.*; import org.apache.poi.xslf.usermodel.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; import java.awt.image.BufferedImage; @@ -32,6 +34,8 @@ import static com.sztzjy.linkCommerce.util.pdfUtils.PDFConvertUtil.TypeEnum.*; */ public final class PDFConvertUtil { + private static final Logger log = LoggerFactory.getLogger(PDFConvertUtil.class); + final private static Map> types = new HashMap<>(); public static enum TypeEnum { @@ -122,14 +126,18 @@ public final class PDFConvertUtil { // 验证License 若不验证则转化出的pdf文档会有水印产生 if (!getLicense()) { + log.warn("word转PDF失败:Aspose License 校验未通过"); return false; } try { //此处处理乱码和小方块 //如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题 //指定文件库内容路径 + // 字体目录同时包含 Windows 系统字体与 Linux 常见目录: + // setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时 + // 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框 FontSettings.getDefaultInstance().setFontsFolders( - new String[] {"/usr/share/fonts", "/usr/share/fonts/win"} + new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"} , true); // 将源文件保存在com.aspose.words.Document中,具体的转换格式依靠里面的save方法 com.aspose.words.Document doc = new com.aspose.words.Document(inputStream); @@ -139,7 +147,7 @@ public final class PDFConvertUtil { System.out.println("word转换完毕"); } catch (Exception e) { - e.printStackTrace(); + log.warn("word转PDF异常", e); return false; }finally { closeOutput(outputStream); @@ -208,7 +216,7 @@ public final class PDFConvertUtil { aposeLic.setLicense(is); result = true; } catch (Exception e) { - e.printStackTrace(); + log.warn("Aspose Words License 加载异常", e); } return result; } @@ -225,8 +233,11 @@ public final class PDFConvertUtil { //此处处理乱码和小方块 //如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题 //指定文件库内容路径 + // 字体目录同时包含 Windows 系统字体与 Linux 常见目录: + // setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时 + // 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框 FontSettings.getDefaultInstance().setFontsFolders( - new String[] {"/usr/share/fonts", "/usr/share/fonts/win"} + new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"} , true); // 原始excel路径 com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(inputStream); @@ -329,8 +340,11 @@ public final class PDFConvertUtil { //此处处理乱码和小方块 //如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题 //指定文件库内容路径 + // 字体目录同时包含 Windows 系统字体与 Linux 常见目录: + // setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时 + // 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框 FontSettings.getDefaultInstance().setFontsFolders( - new String[] {"/usr/share/fonts", "/usr/share/fonts/win"} + new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"} , true); hslfSlideShow = new HSLFSlideShow(inputStream); @@ -411,8 +425,11 @@ public final class PDFConvertUtil { //此处处理乱码和小方块 //如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题 //指定文件库内容路径 + // 字体目录同时包含 Windows 系统字体与 Linux 常见目录: + // setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时 + // 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框 FontSettings.getDefaultInstance().setFontsFolders( - new String[] {"/usr/share/fonts", "/usr/share/fonts/win"} + new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"} , true); slideShow = new XMLSlideShow(inputStream);