Bootstrap

pdf.js 实现PDF在线预览功能

pdf.js 实现PDF在线预览功能

一、下载地址

若失效请自行搜索下载链接

http://mozilla.github.io/pdf.js/getting_started/#download

在这里插入图片描述

二、解压和配置

在这里插入图片描述
我在此处将文件放入到项目的static目录下

三、页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .pdf_box{
            width: 500px;
            height: 800px;
            border: 1px solid silver;
        }
    </style>
</head>
<body>
    <div style="margin: 0 auto">
        <h1>PDF测试页面</h1>
        <div>
            <p>PDF预览方式一</p>
            <!--项目目录中的文件-->
            <iframe src="/pdf/web/viewer.html?file=/test/docker.pdf" width="100%" height="400px;"></iframe>
            <!--电脑本地文件-->
            <iframe src="/pdf/web/viewer.html?file=/apply/preview" width="100%" height="400px" style="margin-top: 50px"></iframe>
        </div>
    </div>
</body>
</html>

其中,第一部分为项目目录中的一个PDF文件
在这里插入图片描述
第二部分为电脑上存放的本地文件 C:\Users\DELL\Desktop\Mybatis.pdf

/**
* 预览文件
* @param response
* @param
* @return
* @throws Exception
*/
@RequestMapping("/preview")
@ResponseBody
public String previewMaterial(HttpServletResponse response)throws Exception {
   String pdf = "C:\\Users\\DELL\\Desktop\\Mybatis.pdf";
   try {
       File file = new File(pdf);
       if (file.exists()){
           byte[] data = null;
           FileInputStream input = new FileInputStream(file);
           data = new byte[input.available()];
           input.read(data);
           response.getOutputStream().write(data);
           input.close();
       }
   } catch (IOException e) {
       System.out.println(e);
   }
   return "";
}

四、效果

在这里插入图片描述

五、问题

我的电脑中安装了IDM,会导致预览失败,若出现此类问题,打开IDM->下载->选项->文件类型->编辑列表->添加当前网站,设置IDM不在此页面自动下载。

;