diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java index c9a48624..91d7aa30 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java +++ b/jodconverter-web/src/main/java/cn/keking/service/impl/OfficeFilePreviewImpl.java @@ -60,6 +60,7 @@ public class OfficeFilePreviewImpl implements FilePreview { if (!new File(filePath).exists()) { ReturnResponse response = downloadUtils.downLoad(decodedUrl, suffix, null); if (0 != response.getCode()) { + model.addAttribute("fileType", suffix); model.addAttribute("msg", response.getMsg()); return "fileNotSupported"; } diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java index 9688f317..82a88c20 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java +++ b/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java @@ -1,9 +1,19 @@ package cn.keking.service.impl; +import cn.keking.config.ConfigConstants; +import cn.keking.model.FileAttribute; +import cn.keking.model.ReturnResponse; import cn.keking.service.FilePreview; +import cn.keking.utils.DownloadUtils; +import cn.keking.utils.FileUtils; +import cn.keking.utils.PdfUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; +import java.io.File; +import java.util.List; + /** * Created by kl on 2018/1/17. * Content :处理pdf文件 @@ -11,9 +21,53 @@ import org.springframework.ui.Model; @Service public class PdfFilePreviewImpl implements FilePreview{ + + @Autowired + FileUtils fileUtils; + + @Autowired + PdfUtils pdfUtils; + + @Autowired + DownloadUtils downloadUtils; + + String fileDir = ConfigConstants.getFileDir(); + @Override public String filePreviewHandle(String url, Model model) { + FileAttribute fileAttribute=fileUtils.getFileAttribute(url); + String decodedUrl=fileAttribute.getDecodedUrl(); + String suffix=fileAttribute.getSuffix(); + String fileName=fileAttribute.getName(); + String officePreviewType = model.asMap().get("officePreviewType") == null ? "" : model.asMap().get("officePreviewType").toString(); model.addAttribute("pdfUrl", url); + String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf"; + String outFilePath = fileDir + pdfName; + if (OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType) || OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_ALLIMAGES.equals(officePreviewType)) { + //当文件不存在时,就去下载 + if (!new File(outFilePath).exists()) { + ReturnResponse response = downloadUtils.downLoad(decodedUrl, suffix, fileName); + if (0 != response.getCode()) { + model.addAttribute("fileType", suffix); + model.addAttribute("msg", response.getMsg()); + return "fileNotSupported"; + } + outFilePath = response.getContent(); + } + List imageUrls = pdfUtils.pdf2jpg(outFilePath, pdfName, url); + if (imageUrls == null || imageUrls.size() < 1) { + model.addAttribute("msg", "pdf转图片异常,请联系管理员"); + model.addAttribute("fileType",fileAttribute.getSuffix()); + return "fileNotSupported"; + } + model.addAttribute("imgurls", imageUrls); + model.addAttribute("currentUrl", imageUrls.get(0)); + if (OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType)) { + return "officePicture"; + } else { + return "picture"; + } + } return "pdf"; } }