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

 更新时间:2024年05月09日 15:44:48   作者:小同学L  
这篇文章主要介绍了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表单组件示例详解

    这篇文章主要介绍了Vue3 Element Plus el-form表单组件,Element Plus 是 ElementUI 的升级版,提供了更多的表单控件和功能,同时还改进了一些细节和样式,本文结合示例代码给大家详细讲解,需要的朋友可以参考下
    2023-04-04
  • vue中三种插槽(默认插槽/具名插槽/作用域插槽)的区别详解

    vue中三种插槽(默认插槽/具名插槽/作用域插槽)的区别详解

    默认插槽,具名插槽,作用域插槽是vue中常用的三个插槽,这篇文章主要为大家介绍了这三种插槽的使用与区别,感兴趣的小伙伴可以了解一下
    2023-08-08
  • Vue全局事件总线和订阅与发布使用案例分析讲解

    Vue全局事件总线和订阅与发布使用案例分析讲解

    在 vue 里我们可以通过全局事件总线来实现任意组件之间通信,它的原理是给 Vue 的原型对象上面添加一个属性。这样的话我所有组件的都可以访问到这个属性,然后可以通过这个属性来访问其他组件给这个属性上面绑定的一些方法,从而去传递数据
    2022-08-08
  • 深度解析 Vue3 的响应式机制

    深度解析 Vue3 的响应式机制

    这篇文章主要介绍了深度解析 Vue3 的响应式机制,今天就带大家深入了解一下 Vue 3 的响应式机制,相信学完今天的内容,会对响应式机制有更深地体会;文章会结合代码示例,帮大家掌握响应式机制的进阶用法,让我们正式开始学习吧
    2022-09-09
  • Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码

    Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码

    这篇文章主要介绍了Vue实现Tab标签路由效果,并用Animate.css做转场动画效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案

    Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案

    本篇文章主要介绍了Vue2 利用 v-model 实现组件props双向绑定的优美解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Vue中Element的table多选表格如何实现单选

    Vue中Element的table多选表格如何实现单选

    这篇文章主要介绍了Vue中Element的table多选表格如何实现单选,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue中关于computed计算属性的妙用

    Vue中关于computed计算属性的妙用

    这篇文章主要介绍了Vue中关于computed计算属性的妙用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • vue项目实现对某个区域绘制水印

    vue项目实现对某个区域绘制水印

    这篇文章主要为大家详细介绍了vue项目实现对某个区域绘制水印,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 使用Vite2+Vue3渲染Markdown文档的方法实践

    使用Vite2+Vue3渲染Markdown文档的方法实践

    本文主要介绍了Vite2+Vue3渲染Markdown文档的方法实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的可以了解一下
    2021-08-08

最新评论