1. 程式人生 > 其它 >本地ofd檔案預覽

本地ofd檔案預覽

需要用到如下檔案:/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
    })
  }
  })
}

}