vue3使用pdf.js来预览文件的操作步骤(本地文件测试)
1.下载pdf.js库

下载后的文件解压结构是这样的

2. 放入项目中
在vue3中public文件夹下新建 lib/pdfjs 文件 , 将解压后的文件放入pdfjs文件夹下

3.新建PDF组件
在src/components新建PDF.vue组件
<template>
<iframe :src="src" width="100%" :web.xmlheight="pdfH" style="width: 100%; height: 90%"></iframe>
</template>
<script setup lang='ts'>
import { ref, nextTick, computed, onMounted } from 'vue'
const props = defineProps({
src: {
type: String,
required: true
}
})
let src = computed(() => {
// vue3的话 路径上不需要写public
// 如果是vue2的话 要写public -> return `/public/lib/pdfjs/web/viewer.html?file=${props.src}`
// 我这里是本地文件测试(props.src是本地文件,必须将这个文件放在public/lib/pdfjs/web下面才行)
return `/lib/pdfjs/web/viewer.html?file=${props.src}`
})
let pdfH = ref(100)
nextTick(() => {
pdfH.value = document.documentElement.clientHeight - 68
})
onMounted(() => {
})
</script>4.在HomeView.vue文件中使用PDF.vue
这里我使用了 打开新页面预览和弹窗预览 两种方式来预览
<script setup lang="ts">
import { ref } from 'vue';
import PDF from '@/components/PDF.vue'
let dySrc = ref('')
const dialogVisible = ref(false)
//? 打开新页面预览
const showPDF = async () => {
dySrc.value = '/lib/pdfjs/web/测试.pdf'
//替换为实际的文档URL
const pdfUrl = `lib/pdfjs/web/viewer.html?file=${dySrc.value}`;
//pdfUrl是当前页面的pdf文件的URL,第二个参数'_blank'表示在新窗口中打开。
window.open(pdfUrl, '_blank');
}
//?在弹框中显示
const showDialogPDF = () => {
dialogVisible.value = true
dySrc.value = '/lib/pdfjs/web/测试.pdf'
}
</script>
<template>
<div>
文件名(新页面打开预览):
<span @click="showPDF" style="color:rgb(0,174,236);cursor: pointer;">xxx.pdf</span>
</div>
<div>
文件名(弹窗打开预览):
<span @click="showDialogPDF" style="color:rgb(0,174,236);cursor: pointer;">xxx.pdf</span>
</div>
<el-dialog v-model="dialogVisible" title="预览pdf">
<p-d-f :src="dySrc"></p-d-f>
</el-dialog>
</template>
<style>
.el-dialog {
width: 1000px;
height: 800px;
}
.el-dialog__body {
height: 100%;
}
</style>注意:
本地文件测试 必须将pdf文件放在public/lib/pdfjs/web下面才行

5.跨域问题
如果出现跨域问题,将 viewer.js文件中的以下代码注释掉就可以了
// if (fileOrigin !== viewerOrigin) {
// throw new Error("file origin does not match viewer's");
// }6.总结
到此这篇关于vue3使用pdf.js来预览文件的操作步骤(本地文件测试)的文章就介绍到这了,更多相关vue3 pdf.js预览文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Vue3 Element Plus el-form表单组件示例详解
这篇文章主要介绍了Vue3 Element Plus el-form表单组件,Element Plus 是 ElementUI 的升级版,提供了更多的表单控件和功能,同时还改进了一些细节和样式,本文结合示例代码给大家详细讲解,需要的朋友可以参考下2023-04-04
vue中三种插槽(默认插槽/具名插槽/作用域插槽)的区别详解
默认插槽,具名插槽,作用域插槽是vue中常用的三个插槽,这篇文章主要为大家介绍了这三种插槽的使用与区别,感兴趣的小伙伴可以了解一下2023-08-08
Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码
这篇文章主要介绍了Vue实现Tab标签路由效果,并用Animate.css做转场动画效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
本篇文章主要介绍了Vue2 利用 v-model 实现组件props双向绑定的优美解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-03-03


最新评论