From 7e2eeaef7c9832c0f2f1778ed95e729aead57a2b Mon Sep 17 00:00:00 2001 From: xuyuxiang Date: Tue, 23 Feb 2021 11:04:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81=EF=BC=8Cpdf=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E6=97=A0=E9=9C=80=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/consts/MediaTypeConstant.java | 25 +++++++++++++++ .../cn/xiaonuo/core/util/LibreOfficeUtil.java | 32 +++++++++++-------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/consts/MediaTypeConstant.java b/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/consts/MediaTypeConstant.java index 7ca99c36..8fa36cae 100644 --- a/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/consts/MediaTypeConstant.java +++ b/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/consts/MediaTypeConstant.java @@ -96,4 +96,29 @@ public interface MediaTypeConstant { * 文档pptx格式 */ String DOC_PPTX = "pptx"; + + /** + * 文档pdf格式 + */ + String DOC_PDF = "pdf"; + + /** + * 文件html格式 + */ + String FILE_HTML = "html"; + + /** + * 文件htm格式 + */ + String FILE_HTM = "htm"; + + /** + * 文件swf格式 + */ + String FILE_SWF = "swf"; + + /** + * 文件flash格式 + */ + String FILE_FLASH = "flash"; } diff --git a/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/util/LibreOfficeUtil.java b/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/util/LibreOfficeUtil.java index 9a1100d5..531fb38c 100644 --- a/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/util/LibreOfficeUtil.java +++ b/xiaonuo-base/xiaonuo-core/src/main/java/com/cn/xiaonuo/core/util/LibreOfficeUtil.java @@ -45,19 +45,21 @@ public class LibreOfficeUtil { * @date 2020/7/6 15:02 */ public static void convertToPdf(InputStream inputStream, OutputStream outputStream, String fileSuffix) { - init(); - final DocumentFormatEnum documentFormatEnum = DocumentFormatEnum.valueOf(fileSuffix.toUpperCase()); - final DocumentFormat format = documentFormatEnum.getFormFormat(); - log.info(">>> 待转换的文档类型:{}", format); - final DocumentFormat targetFormat = documentFormatEnum.getTargetFormat(); - log.info(">>> 转换的目标文档类型:{}", targetFormat); - try { - final InputStream is = documentFormatEnum.getInputStream(inputStream); - documentConverter.convert(is).as(format).to(outputStream).as(targetFormat).execute(); - } catch (IOException | OfficeException e) { - e.printStackTrace(); + if(!MediaTypeConstant.DOC_PDF.equals(fileSuffix)) { + init(); + final DocumentFormatEnum documentFormatEnum = DocumentFormatEnum.valueOf(fileSuffix.toUpperCase()); + final DocumentFormat format = documentFormatEnum.getFormFormat(); + log.info(">>> 待转换的文档类型:{}", format); + final DocumentFormat targetFormat = documentFormatEnum.getTargetFormat(); + log.info(">>> 转换的目标文档类型:{}", targetFormat); + try { + final InputStream is = documentFormatEnum.getInputStream(inputStream); + documentConverter.convert(is).as(format).to(outputStream).as(targetFormat).execute(); + } catch (IOException | OfficeException e) { + e.printStackTrace(); + } + log.info(">>> 文件转换结束"); } - log.info(">>> 文件转换结束"); } /** @@ -88,7 +90,8 @@ public class LibreOfficeUtil { || MediaTypeConstant.DOC_XLS.equals(fileSuffix) || MediaTypeConstant.DOC_XLSX.equals(fileSuffix) || MediaTypeConstant.DOC_PPT.equals(fileSuffix) - || MediaTypeConstant.DOC_PPTX.equals(fileSuffix); + || MediaTypeConstant.DOC_PPTX.equals(fileSuffix) + || MediaTypeConstant.DOC_PDF.equals(fileSuffix); } /** @@ -103,7 +106,8 @@ public class LibreOfficeUtil { || MediaTypeConstant.DOC_DOC.equals(fileSuffix) || MediaTypeConstant.DOC_DOCX.equals(fileSuffix) || MediaTypeConstant.DOC_PPT.equals(fileSuffix) - || MediaTypeConstant.DOC_PPTX.equals(fileSuffix)) { + || MediaTypeConstant.DOC_PPTX.equals(fileSuffix) + || MediaTypeConstant.DOC_PDF.equals(fileSuffix)) { return MediaType.APPLICATION_PDF_VALUE; } else { //否则是html类型