首页 > 其他分享 >vue3写pdf文档预览和下载

vue3写pdf文档预览和下载

时间:2024-07-30 10:20:30浏览次数:14  
标签:vue false 预览 value 文档 vue3 pdf embed

1. 实现效果:

文件列表点击pdf文档可预览,含多页,带下载按钮

 2.  用的vue3 + vue-pdf-embed

版本号可用1.x或2.x : 这里我用的1.2.1版本:

"vue-pdf-embed": "1.2.1"
// 安装:
npm i [email protected]
  vue-pdf-embed官方文档:
  • 2.0.0版本 : https://www.npmjs.com/package/vue-pdf-embed/v/2.0.0
  • 1.2.1版本 : https://www.npmjs.com/package/vue-pdf-embed/v/1.2.1?activeTab=readme

3. 具体代码

  • hmtl部分
<div  @click="handleViewPdf">
    <div class="pdfNameBox" title="点击预览">
        点击文件名
    </div>
</div>

<!-- pdf预览 -->
<el-dialog v-model="pdfOpen" title="'pdf预览'" width="80%" append-to-body>
    <div v-loading="isLoading" style="min-height: 439px" element-loading-text="加载中...">
        <vue-pdf-embed ref="pdfRef" v-if="!pdfFail" :source="pdfSrc"  @rendered="handleDocumentRender" @loading-failed="handlePdfFaid" />
    </div>

    <a :href="pdfSource" :download="下载文件名" class="loadPdf" target="_blank">
        <el-button type="primary" icon="Download" plain>下载</el-button>
    </a>

    <template #footer>
        <el-button @click="pdfOpen = false" type="primary">关 闭</el-button>
    </template>
</el-dialog>
  • 方法:
const pdfOpen = ref(false);
const isLoading = ref(true);
const pdfSrc = ref('');
const pdfFail = ref(false);

// 调试文档用
const pdfSource = ref('https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf');
// pdf加载
function handleDocumentRender(val) {
    isLoading.value = false;
    pdfFail.value = false;
}
// pdf加载失败,或者404
function handlePdfFaid(val) {
    isLoading.value = false;
    pdfFail.value = true;
    console.log('文档加载失败');
}
// 点击 预览
function handleViewPdf(file) {
    isLoading.value = true;
    pdfOpen.value = true;
    pdfSrc.value = pdfSource.value;
    pdfFail.value = false;
}
  • 样式:
// 下载按钮
.loadPdf {
    position: absolute;
    top: 6px;
    right: 50px;
}

 

标签:vue,false,预览,value,文档,vue3,pdf,embed
From: https://www.cnblogs.com/shyhuahua/p/18331635

相关文章

  • 电动汽车充电技术及运营知识问答pdf
    电动汽车充电技术及运营知识问答作者:马银山编著出版社:北京:中国电力出版社ISBN:9787512320406资源大小:16.99MB目录:http://literalink.top/resource/detail/7181601144102195200第一章电动汽车基本知识11-1什么是电动汽车? 11-2电动汽车最早出现在什么年代、哪......
  • Vue3的学习---3
    3.Vue进阶3.1Vue方法、计算属性及监听器3.1.1computed计算属性computed用于定义计算属性,计算属性是基于他们的依赖关系进行缓存的,只有当依赖的数据发生变化时,计算属性才会重新计算。数据不发生变化:<body><divid="app">{{msg}}<br>{{r......
  • vue3中使用keepAlive缓存路由组件不生效的问题解决
    在Vue3中使用keep-alive缓存路由组件时,可能会遇到一些问题导致缓存不生效。以下是一些常见的问题及其解决方案:keep-alive写法错误:在Vue3中,使用keep-alive需要将router-view包裹在keep-alive中,并通过插槽传递组件。例如:<template><router-viewv-slot="{Co......
  • 【专题】2024家·生活智能家居趋势报告合集PDF分享(附原数据表)
    原文链接: https://tecdat.cn/?p=37146近二十载间,中国消费市场见证了从产品创新到渠道创新的双重飞跃,无论是耐用消费品还是快速消费品,均在线上线下平台绽放出前所未有的丰富选择,多数行业已转型为以消费者为核心导向的买方市场格局。阅读原文,获取专题报告合集全文,解锁文末218份智......
  • js vue3 vue2鼠标单击事件复制指定内容到粘贴板
    借助原生JavaScript的 navigator.clipboard.writeText() 方法来时(要求页面是在用户交互的上下文中,比如点击事件处理程序中调用)如:点击列表的复制按钮,得到指定列(data)的值到粘贴板<template><div><button@click="click">复制文本</button></div></templ......
  • elementplus图片预览操作按钮栏增加下载
    1.实现效果:elementplus图片预览组件,自定义增加一个下载按钮,以及下载功能,如图 2.使用的vue3和element plus版本"element-plus":"2.7.6",3.具体代码:(1)使用#viewer插槽:<el-image:title="点击预览":src="getBowserUrl(scope.row.filePath)":z......
  • Python 在PDF中添加、替换、或删除图片
    PDF文件中的图片可以丰富文档内容,提升用户的阅读体验。除了在PDF中添加图片外,有时也需要替换或删除其中的图片,以改进视觉效果或更新信息。本文将提供以下三个示例,介绍如何使用Python操作PDF文件中的图片:Python在PDF中添加图片Python替换PDF中的图片Python删除PDF中的图片......
  • 前端实现图片或视频预览的三种方法总结
    在前端开发中,实现图片或视频预览是一个常见的需求。以下是三种常用的方法来实现图片或视频的预览功能:1.HTML标签直接预览1.1图片预览使用<img>标签可以直接显示图片,并且可以通过src属性动态加载图片。<imgsrc="image.jpg"alt="预览图"/>1.2视频预览使用<video>......
  • 福昕高级PDF编辑器专业版 v2024 授权版
    福昕高级PDF编辑器是一款功能强大的PDF文件编辑软件,提供多种实用的编辑功能。软件截图:使用说明:解压后,双击start.bat来运行软件。下载地址:FoxitPDFEditor-Pro-2024解压密码:helloh下载时可能会有广告,忽略,等下载结束即可。部分杀软会因该版本软件未购买签名证书(如下图)而......
  • Vue3-如何自己写一个“返回顶部”功能
    功能描述:在屏幕的右下角固定一个“返回顶部”按钮,只有当用户滚动屏幕一定程度后出现,否则隐藏。点击按钮,网页平滑的滚动到页面顶部。环境:Vue3,js,antd具体思路:1、给窗口挂载滚动事件,监听视口的滚动,当滚动距离超出设定阈值后,出现按钮。2、点击按钮,滚动窗口。具体代码:<tem......