1、pdf.js下載地址
https://github.com/mozilla/pdf.js
2、文件目錄如圖示例
針對於pdf方面有用的只是pdf這個包下面,和viewer.html這個html頁面
3、viewer.html是我們用來展示pdf的頁面不需要改
4、但是viewer.js中有些東西使我們需要注意的
(1)webViewerInitialized()這個方法
var appConfig = PDFViewerApplication.appConfig;
var file = void 0;
var queryString = document.location.search.substring(1);
var params = (0, _ui_utils.parseQueryString)(queryString);
file = 'file' in params ? params.file : appConfig.defaultUrl;
三元表達式代表最後得到的這個file就是,我們會去訪問的地址(這塊看不懂的可以先往下看)
(2)首先我們頁面一般都需要有類似於按鈕的地方去發請求
假設,我們發送的請求是:window.open("/viewer.html?file=/showPDFFile/1");
這就是我們上面將viewer.html放在resources下面的原因,我們需要能夠直接訪問到它
(3)現在我們訪問到了viewer.html,程序走到了viewer.js,webViewerInitialized()這個方法就起作用了,它會解析出我們請求的file參數的值,然後去訪問file值。(也就是說我們這個例子會去訪問/showPDFFile/1這個地址)
(4)最後我們的後臺Controller層,寫一個下載文件的方法就ok了,
@RequestMapping("showPDFFile/{id}")
@ResponseBody
public void showPDFFile(@PathVariable("id") Integer id,HttpServletResponse response){
MMPojo mmPojo = mmService.getById(id);
File file = new File(mmPojo .getFilePath());
if (file.exists()) {
byte[] data = null;
FileInputStream input=null;
try {
input= new FileInputStream(file);
data = new byte[input.available()];
input.read(data);
response.getOutputStream().write(data);
} catch (Exception e) {
System.out.println("pdf文件處理異常:" + e);
}finally{
try {
if(input!=null){
input.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
(5)這樣我們的pdf文件就完美展示成功了,但是這個pdf文件展示是沒有目錄的哈。
(6)建議呢,直接下載我這一套模板,照着改就行,用官網的可能有些地方,會比較難搞。
(7)模板地址:https://download.csdn.net/download/weixin_42152604/11945846