ofd发票类型用得现在也比较多了,但线上文档插件比较少,在github找到了ofd.js,故记录一下使用情况
ofd 预览
ofd 读写
github在线预览例子
<template>
<div id="content" class="content_wrap">
<div class="seal_img_div"></div>
</div>
</template>
<script>
import { parseOfdDocument, renderOfd } from "ofd.js";
export default {
props: {
fileurl: {
type: String,
default:
"http://wechatapppro-1252524126.file.myqcloud.com/1252524126/images/feb651856e28a850325c3774ff03e61e.1.ofd",
},
screenWidth: {
type: Number,
default: 400,
},
},
data() {
return {};
},
mounted() {
this.renderOfdFile(this.fileurl);
},
watch: {},
methods: {
fileChanged() {
const file = this.$refs.file.files[0];
this.renderOfdFile(file);
},
renderOfdFile(file) {
const that = this;
parseOfdDocument({
ofd: file,
success(res) {
const divs = renderOfd(that.screenWidth, res[0]);
let contentDiv = document.getElementById("content");
contentDiv.innerHTML = "";
for (const div of divs) {
contentDiv.appendChild(div);
}
for (let ele of document.getElementsByName("seal_img_div")) {
this.addEventOnSealDiv(
ele,
JSON.parse(ele.dataset.sesSignature),
JSON.parse(ele.dataset.signedInfo)
);
}
},
fail(error) {
console.log(error);
},
});
},
},
};
</script>
<style scoped lang="scss"></style>