本地ofd檔案預覽
阿新 • • 發佈:2022-04-11
需要用到如下檔案:/utils資料夾下ofd和jbig2兩個資料夾的檔案
ofd資料夾中的檔案如下:
- ofd.js
- ofd_render.js
- pipleline.js
- ofd_parser.js
- ses_signature_parser.js
- ofd_util.js
- sm3.js
- verify_signature_util.js
jbig2資料夾中的檔案如下:
- arithmetic_decoder.js
- ccitt.js
- compatibility.js
- core_utils.js
- is_node.js
- jbig2_stream.js
- jbig2.js
- primitives.js
- stream.js
- util.js
+jszip-utils外掛
在main.js中引入,註冊為全域性函式
import {parseOfdDocument,renderOfd} from "@/utils/ofd/ofd" Vue.prototype.$parseOfdDocument=parseOfdDocument Vue.prototype.$renderOfd=renderOfd
頁面元件中,開啟本地ofd檔案預覽相關程式碼如下:
<el-button @click="importFile()">開啟OFD <input ref="upload" type="file" style="display:none" accept=".ofd" /> </el-button> <div id="ofdDiv" v-show = "showOfd"></div> mounted(){ this.refs.upload.addEventListener('change',e=>{ this.readOfd(e) }) }, methods:{ // 開啟ofd檔案 importFile(){ this.blobURL=null $("#fileButton")[0].click() }, readOfd(e){ const file = e.target.files; if(file.length<=0){ return false }else if(!/\.(ofd)$/test(files[0].name.toLowerCase())){ alert("上傳格式不正確") return false } this.showOfdFile(files[0]) //開啟ofd檔案預覽 this.blobURL = files[0] }, showOfdFile(fileurl){ let that =this; // 在main.js中註冊的全域性函式 this.$parseOfdDocument({ ofd:fileurl, success(res){ // $renderOfd 也是main.js中註冊的全域性函式 let divs = that.$renderOfd(that.screenWidth,res[0]) let contentDiv = document.getElementById("ofdDiv") contentDiv.innerHTML='' divs.forEach(e=>{ contentDiv=appendChild(e); }); that.showOfd=true }, // 失敗的話顯示錯誤提示資訊 fail(error){ that.$message({ type:'info', message:error, showClose:true, duration:20000 }) } }) } }