From 6387ac21c9008eb8bc940e7efd40660c1d81ae32 Mon Sep 17 00:00:00 2001 From: zhangzhen1979 Date: Thu, 9 Dec 2021 17:19:15 +0800 Subject: [PATCH] =?UTF-8?q?*=20tif=E5=9B=BE=E7=89=87=E9=A2=84=E8=A7=88?= =?UTF-8?q?=EF=BC=8C=E6=A0=B9=E6=8D=AE=E5=8F=8D=E9=A6=88=E7=9A=84=E6=84=8F?= =?UTF-8?q?=E8=A7=81=EF=BC=8C=E5=B7=B2=E7=BB=8F=E5=85=A8=E9=83=A8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=201=E3=80=81=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E3=80=81=E9=85=8D=E7=BD=AE=E9=A1=B9=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E5=B7=B2=E6=94=B9=E5=9B=9Eimage=E3=80=81tif=202=E3=80=81?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BA=86=E9=9D=99=E6=80=81=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E4=B8=8A=E7=9A=84@component=20=E6=B3=A8=E8=A7=A3=203?= =?UTF-8?q?=E3=80=81=E4=BF=AE=E6=94=B9OnlinePreview=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8=E5=88=87=E6=8D=A2image=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E6=97=B6url=E4=B8=AD=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E6=95=B0previewType=3Dimage=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E5=AF=B9=E5=BA=94=E7=9A=84=E5=A4=84=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=9C=A8pdf=E9=A2=84=E8=A7=88=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E5=88=87=E6=8D=A2=E5=88=B0JPG=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/config/application.properties | 4 ++-- .../main/java/cn/keking/config/ConfigConstants.java | 2 +- .../cn/keking/service/impl/TiffFilePreviewImpl.java | 10 +++++----- .../src/main/java/cn/keking/utils/ConvertPicUtil.java | 2 -- .../keking/web/controller/OnlinePreviewController.java | 4 ++++ server/src/main/resources/web/pdf.ftl | 4 +++- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/server/src/main/config/application.properties b/server/src/main/config/application.properties index e17cadaf..cffbc9d3 100644 --- a/server/src/main/config/application.properties +++ b/server/src/main/config/application.properties @@ -67,7 +67,7 @@ media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:false} #支持转换的视频类型 convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm} #office类型文档(word ppt)样式,默认为图片(image),可配置为pdf(预览时也有按钮切换) -office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:pdf} +office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image} #是否关闭office预览切换开关,默认为false,可配置为true关闭 office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:false} @@ -107,5 +107,5 @@ watermark.height = ${WATERMARK_HEIGHT:80} watermark.angle = ${WATERMARK_ANGLE:10} #Tif类型图片浏览模式:tif(利用前端js插件浏览);jpg(转换为jpg后前端显示);pdf(转换为pdf后显示,便于打印) -tif.preview.type = ${KK_TIF_PREVIEW_TYPE:tif} +tif.preview.type = ${KK_TIF_PREVIEW_TYPE:pdf} diff --git a/server/src/main/java/cn/keking/config/ConfigConstants.java b/server/src/main/java/cn/keking/config/ConfigConstants.java index 83993082..0f3df26a 100644 --- a/server/src/main/java/cn/keking/config/ConfigConstants.java +++ b/server/src/main/java/cn/keking/config/ConfigConstants.java @@ -53,7 +53,7 @@ public class ConfigConstants { public static final String DEFAULT_TRUST_HOST = "default"; public static final String DEFAULT_PDF_DOWNLOAD_DISABLE = "true"; public static final String DEFAULT_FILE_UPLOAD_DISABLE = "false"; - public static final String DEFAULT_TIF_PREVIEW_TYPE = "jpg"; + public static final String DEFAULT_TIF_PREVIEW_TYPE = "tif"; public static Boolean isCacheEnabled() { return cacheEnabled; diff --git a/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java b/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java index 018d675d..377b105a 100644 --- a/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java +++ b/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java @@ -41,6 +41,7 @@ public class TiffFilePreviewImpl implements FilePreview { public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { String tifPreviewType = ConfigConstants.getTifPreviewType(); + String priveiwType = String.valueOf(model.getAttribute("previewType")); if("tif".equalsIgnoreCase(tifPreviewType)){ @@ -71,15 +72,14 @@ public class TiffFilePreviewImpl implements FilePreview { if(fileJpg.exists()){ // 转换后的tif没用了,可以删掉了 - fileTiff.delete(); + if(fileTiff.exists()){ + fileTiff.delete(); + } String baseUrl = BaseUrlFilter.getBaseUrl(); - if("pdf".equalsIgnoreCase(tifPreviewType)){ + if("pdf".equalsIgnoreCase(tifPreviewType) && !"image".equalsIgnoreCase(priveiwType)){ File filePdf = ConvertPicUtil.convertJpg2Pdf(fileDir + uuid + ".jpg", fileDir + uuid + ".pdf"); if(filePdf.exists()){ - // 转换后的jpg没用了,可以删掉了 - fileJpg.delete(); - String pdfUrl = baseUrl + uuid + ".pdf"; model.addAttribute("pdfUrl", pdfUrl); diff --git a/server/src/main/java/cn/keking/utils/ConvertPicUtil.java b/server/src/main/java/cn/keking/utils/ConvertPicUtil.java index c4200106..2b29a1e7 100644 --- a/server/src/main/java/cn/keking/utils/ConvertPicUtil.java +++ b/server/src/main/java/cn/keking/utils/ConvertPicUtil.java @@ -8,13 +8,11 @@ import com.lowagie.text.pdf.PdfWriter; import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.ImageEncoder; import com.sun.media.jai.codec.JPEGEncodeParam; -import org.springframework.stereotype.Component; import javax.media.jai.JAI; import javax.media.jai.RenderedOp; import java.io.*; -@Component public class ConvertPicUtil { /** diff --git a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java index 42804746..22af00ec 100644 --- a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java +++ b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java @@ -70,6 +70,10 @@ public class OnlinePreviewController { } FileAttribute fileAttribute = fileHandlerService.getFileAttribute(fileUrl, req); model.addAttribute("file", fileAttribute); + + String previewType = req.getParameter("previewType"); + model.addAttribute("previewType", previewType); + FilePreview filePreview = previewFactory.get(fileAttribute); logger.info("预览文件url:{},previewType:{}", fileUrl, fileAttribute.getType()); return filePreview.filePreviewHandle(fileUrl, model, fileAttribute); diff --git a/server/src/main/resources/web/pdf.ftl b/server/src/main/resources/web/pdf.ftl index fa0167e7..5e6c8501 100644 --- a/server/src/main/resources/web/pdf.ftl +++ b/server/src/main/resources/web/pdf.ftl @@ -37,12 +37,14 @@ } function goForImage() { - var url = window.location.href; + var url = window.location.href + "&previewType=image" + console.log(url); if (url.indexOf("officePreviewType=pdf") != -1) { url = url.replace("officePreviewType=pdf", "officePreviewType=image"); } else { url = url + "&officePreviewType=image"; } + console.log(url); window.location.href = url; }