利用pdfjs实现pdf预览

首先下载pdfjs:
https://hub.fastgit.org/mozilla/pdf.js

然后下载里边的东西;

这个是pdfjs的文件,下载dist文件夹并且解压

前端:

 function setpreview(fileno) {

          window.open('${path}/bower/pdfJs/web/viewer.html?file=${path}/protect.file/getPdfPreView/'+fileno,'PDF','width:50%;height:50%;top:100;left:100;');

      }

后端:


 @Get
    public void getPdfPreView() {
        try {

            File file = null;

            HttpServletRequest request = getRequest();
            StringBuffer requestURL = request.getRequestURL();
            KnowledgeFilesDao knowledgeFilesDao = KnowledgeFilesDao.get();
            String fileNo = StringUtils.substringAfterLast(requestURL.toString(), "/");
            //查询到这条知识实体;
            KnowledgeFilesEntity knowledgeNameByFileNo = knowledgeFilesDao.getKnowledgeNameByFileNo(fileNo);
            //如果是本地文件,则获取路径进行判断;
            if (StringUtils.isNotBlank(knowledgeNameByFileNo.getFilePath())) {
                String filePath = knowledgeNameByFileNo.getFilePath();
                String[] fileNames = StringUtils.split(filePath, "\\");
                if (fileNames.length == 1) {
                    fileNames = StringUtils.split(filePath, "/");
                }
                String fileLastName = fileNames[fileNames.length - 2] + "/" + fileNames[fileNames.length - 1];
                //当前用户上传下载文件夹
                String realPath = getRequest().getServletContext().getRealPath("WEB-INF\\upload") + "/" + fileLastName;
                realPath = StringUtils.replace(realPath, "\\", "/");

                // 判断文件是否具有pdf水印文件,如果有不参与加水印转换;
                File waterPdf = getWaterPdf(realPath);
                if (waterPdf!=null){
                    file=waterPdf;
                }else {
                //如果是pdf文件,则进行加水印,否则转化后加水印
                if (StringUtils.equals("pdf", StringUtils.substringAfterLast(fileLastName, "."))) {
                   file= UploadedFileLogic.pdfAddWaterMark(realPath);
                }else {
                    //如果不是pdf文件,则进行转换后加水印;
                    File pdfFile=UploadedFileLogic.pdfToOfficeReturnFileNotItem(realPath);
                    file=UploadedFileLogic.pdfAddWaterMark(pdfFile.getAbsolutePath());
                }
                }
            }else {
                String realPath=getRequest().getServletContext().getRealPath("WEB-INF\\upload")+"/"+getLoginedUser().getLoginUser().getUserKey();
                realPath = StringUtils.replace(realPath, "\\", "/");
                //如果是流文件,则转化为pdf后进行预览
               file= UploadedFileLogic.inputToPdfFile(knowledgeNameByFileNo.getFileBinary(),realPath,knowledgeNameByFileNo.getFileName());
            }

            FileInputStream fileInputStream = new FileInputStream(file);
            HttpServletResponse response = getResponse();
            String fileName= URLEncoder.encode(StringUtils.split(knowledgeNameByFileNo.getFileName(),".")[0],"UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setHeader("Content-Disposition", "attachment;fileName="+fileName+".pdf");
//            response.setContentType("text/html");
            response.setContentType("multipart/form-data;charset=UTF-8");
            OutputStream outputStream = response.getOutputStream();

            IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream);

            outputStream.flush();
            outputStream.close();

        } catch (Exception e) {

        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值