Vue2中使用firefox的pdfjs进行文件文件流预览
文章目录
- 1.使用场景
- 2. 使用方式
- 1. npm 包下载,[点击查看](https://www.npmjs.com/package/pdfjs-dist)
- 2. 官网下载
- 1. 放到public文件夹下面
- 2. 官网下载地址[点我,进入官网](https://github.com/mozilla/pdf.js/tags?after=v3.3.122)
- 3. 代码演示
- 4. 图片预览
- 5. 如果遇到跨域或者application/octet-stream等问题
1.使用场景
pdf链接或者pdf文件流的预览
2. 使用方式
1. npm 包下载,点击查看
npm i pdfjs-dist // 此种方式,不过多介绍,网上都是
2. 官网下载
1. 放到public文件夹下面
2. 官网下载地址点我,进入官网
由于是github可能有些网络进不去,可以通过网盘下载
链接: https://pan.baidu.com/s/1cG06QTtWwTSTSzOPWy5NQg?pwd=rcnm 提取码: rcnm
3. 代码演示
<template>
<div class="pdf-preview">
<el-row>
<el-col :span="24">
<el-button @click="handleChooseLocalFile" type="primary">选择本地文件</el-button>
</el-col>
</el-row>
<iframe class="pdf-iframe" :src="previewURL" width="100%" height="800px" v-if="previewURL"></iframe>
</div>
</template>
<script>
export default {
name: "pdfPreview",
data() {
return {
// public 下面的路径
pdfJsViewer: "/pdfjs-4.8.69/web/viewer.html",
fileUrl: "/pdfjs-4.8.69/web/compressed.tracemonkey-pldi-09.pdf",
};
},
computed: {
previewURL() {
return this.fileUrl ? `${this.pdfJsViewer}?file=${encodeURIComponent(this.fileUrl)}` : "";
},
},
methods: {
handleChooseLocalFile() {
let input = document.createElement("input");
input.type = "file";
input.accept = ".pdf";
input.multiple = false;
input.onchange = (e) => {
let file = e.target.files[0];
if (file) {
this.fileUrl = URL.createObjectURL(file);
}
};
input.click();
input.remove();
},
},
};
</script>
<style scoped lang="scss">
.inner-tool {
display: flex;
flex-direction: column;
}
.pdf-preview {
flex: 1;
}
.pdf-iframe {
margin-top: 20px;
height: calc(100vh - 150px);
}
</style>
4. 图片预览
5. 如果遇到跨域或者application/octet-stream等问题
参考大佬 平凡的人类 空白