1. 程式人生 > >pdf.js用流的方式展示pdf檔案

pdf.js用流的方式展示pdf檔案

修改viewer.js

      var DEFAULT_URL 'compressed.tracemonkey-pldi-09.pdf'  裡面是PDF的路徑 刪除整條資料,在viewer.html中重新定義

引入Jquery

 以下程式碼放在viewer.html中

ajax程式碼部分

var DEFAULT_URL = "";//剛才刪除的變數在這裡重新定義  

var PDFData = "";

$.ajax({  
    type:"post",  
    async:false,  //
    mimeType: 'text/plain; charset=x-user-defined',  
    url:檔案流請求地址,  
    success:function(data){  
       PDFData = data;  
    }  
});  
var rawLength = PDFData.length;  
//轉換成pdf.js能直接解析的Uint8Array型別,見pdf.js-4068  
var array = new Uint8Array(new ArrayBuffer(rawLength));    
for(i = 0; i < rawLength; i++) {  
  array[i] = PDFData.charCodeAt(i) & 0xff;  
}  

DEFAULT_URL = array; 

引入<script src="viewer.js"></script>

一定要注意以上程式碼要放在<script src="viewer.js"></script>引入之前

java程式碼部分

    我是從Oracle取的blob,sql就不寫了

String filePath = "temp" + File.separator ; //file存放地址,temp是tomcatbin目錄下的 
String path = filePath + File.separator + name;//file的路徑,name是檔案的名字
File pdfFile = new File(path + File.separator + name + "pdf.pdf");
if (!pdfFile.exists()) {//判斷本地檔案,減少資料庫壓力
Blob sbrpdf = dsDeclarer.getBlob(0, "namepdf");
InputStream is = sbrpdf.getBinaryStream();
byte[] b = new byte[(int) sbrpdf.length()];
is.read(b);
is.close();//記得關閉流
RaterUserBiz.createDir(path);
FileIOUtil.writeBytesToFile(b, pdfFile);

}

                //接下來的流往哪裡傳輸根據需求,這裡不寫了,有問題的話發評論我看到就會回覆