vue-pdf-embed预览PDF

vue3使用vue-pdf-embed预览文件流格式的pdf文件 安装vue-pdf-embed,'data:application/pdf;base64,' + 接口获取的文件流; 阅读详情
AI摘要

本文介绍了vue-pdf-embed插件用于预览PDF的相关内容。包括插件的安装、在文件中引入,该插件支持PDF地址,能将base64或二进制数据生成PDF地址,还支持预览CA及腾讯电子签名,可兼容PC和移动端。若安装引用后无法加载文件且无报错,可降低版本。

一、vue-pdf-embed

链接:Yarn

1、安装插件

npm install vue-pdf-embed

2、文件中引入(分页效果已实现,样式请自行修改)

<template>
	<div class="download-pdf-preview" style="height: 450px; border:10px solid #D4D4D7;overflow: hidden; overflow-y: scroll">
		<!-- <vue-pdf-app style="height: 430px;" :pdf="pdfURL"></vue-pdf-app> -->
		<vue-pdf-embed ref="morePDF" :source="pdfURL" :page="currentPage" ></vue-pdf-embed>
	    <div class="ins-pdf-button-box">
			<span @click.stop="prePage">上一页</span>
			<span>{{currentPage}}/{{pages}}</span>
			<span @click.stop="nextPage">下一页</span>
		</div>
    </div>
	<div style="text-align: right; margin-top: 10px;">
		<Button type="text" v-if="back" style="color: #FF7D48; width: 100px;" @click="handleBack()">返回列表</Button>
		<Button style="color: #FF7D48; width: 100px; border-color: #FF7D48;" @click="handleDownload()">下载</Button>
	</div>
</template>

<script>
import {downloadBlob,base64ToBlob,blobToUrl} from '@/utils/index.js'
import VuePdfEmbed from "vue-pdf-embed"

export default {
	components: {
		VuePdfEmbed
	},
	emits : ['on-back'],
	props : {
		info : {
			type : Object,
			default : {}
		},
		back : {
            type:Boolean,
            default : false
        }
	},
	data(){
		return {	
	       pdfURL : ''	,//PDF URL
		   pages: [],
           numPages : 0,		//分页
		   currentPage : 1, //当前显示页数
		}
	},
	computed : {
		
	},
	watch: {
		info : {
			handler(data) {
				if(data?.base64Str){
					const blob = base64ToBlob(data.base64Str);  
	                this.pdfURL= blobToUrl(blob)
				}
			},
			deep: true,
			immediate: true
        }
	},
	methods : {
		//返回列表
		handleBack(){
			this.$emit('on-back')
		},
		//下载
		handleDownload(){
			downloadBlob(this.pdfURL,this.info.fileName)
		},
		async getPDFnums(url) {
			const page = await VuePdfEmbed.getDocument(url).promise
            this.pages = page.numPages
			this.currentPage = 1
		},
        // 上一页
		prePage() {
			var page = this.currentPage
			page = page > 1 ? page - 1 : this.numPages
			this.currentPage = page
		},

		// 下一页
		nextPage() {
			var page = this.currentPage
			page = page < this.numPages ? page + 1 : 1
			this.currentPage = page
		}
	},
	created(){
	},
	mounted () {
	}
}	
</script>

<style>
</style>

3、插件支持PDF地址,base64或二进制数据需要生成PDF地址

// PDF base64 转地址
export function base64ToBlob(base64Data){
    const binary = atob(base64Data);  
    const len = binary.length;  
    const buffer = new Uint8Array(len);  
    for (let i = 0; i < len; i++) {  
        buffer[i] = binary.charCodeAt(i);  
    }  
    return new Blob([buffer], { type: 'application/pdf' });  
}

// PDF base64 转地址
export function blobToUrl(blob) {  
    return URL.createObjectURL(blob);  
}

4、插件支持预览CA电子签名及腾讯电子签名,可兼容PC和移动端的PDF预览。 

注意:如果安装完毕并正确引用后无法加载PDF文件,且控制台无报错原因,请降低改插件的版本例:1.2.1

Vue3预览并打印PDF的两种方法 Vue3预览并打印PDF 阅读详情

相关推荐

vue3.0借用vue-pdf-embed实现在线预览pdf文件

在需求中,经常遇见pdf的在线预览效果 很多pdf插件不支持vue3,或者是没有集成翻页放大缩小功能,比如vue-pdf。 实现原理:借用依赖vue-pdf-embed(pdf预览),pdfjs-dist(获取pdf总页数) 实现效果 实现步骤 一:安装依赖 npm i vue-pdf-embed -S npm install --save pdfjs-dist 二:页面使用 vue文件中 <template> <div> <div class="div"&.

hyduan_h5的博客 1万+

PDF在线预览实现:如何使用vue-pdf-embed实现前端PDF在线阅读

使用vue-pdf-embed实现前端PDF在线阅读

st646889325的博客 6944

利用vue-pdf-embed实现PDF文件的预览

在前端开发里,有时候会遇到需要在网页中展示 PDF 文档预览功能,比如合同 ERP、销售 CRM、内部文档 CMS 管理系统,内置 PDF 文件在线预览功能。Vue 3 作为流行的 JavaScript 框架,为开发者提供了强大的工具和生态系统。而 pdf.js 是 Mozilla 开发的一个基于 HTML5 的开源 PDF 渲染库,它能让我们在浏览器中无需借助第三方插件就可以直接展示 PDF 文件。本文会详细阐述如何在 Vue 项目里使用vue-pdf-embed 来展示 PDF 文档。

独泪了无痕 681

vue3中使用 vue-pdf-embed 实现pdf文件预览、翻页、下载等功能

一、安装 `vue-pdf-embed` 1、安装 `vue-pdf-embed` 二、文件预览 1、`html` 结构内容 2、`css` 样式 3、`js` 基本预览功能实现 4、获取文件总页数 三、翻页 四、缩放 五、下载 六、打印 七、指定页面跳转 八、项目演示 九、参考资料

qq_45897239的博客 2万+

Vue3实战:利用vue-pdf-embed实现PDF文件流的高效预览

本文详细介绍了在Vue3项目中,如何利用vue-pdf-embed组件高效预览PDF文件流。针对后端返回Base64编码或ArrayBuffer二进制流等常见场景,提供了从安装、基础使用到处理文件流的核心实战代码,并分享了自定义控制、性能优化及常见问题解决方案,帮助开发者快速实现稳定可靠的PDF预览功能。

tree的博客 1073

vue3中vue-pdf-embed实现放大、缩小、上一页、下一页、滚动翻页功能(pdf文件预览)

vue3中vue-pdf-embed实现放大、缩小、上一页、下一页、滚动翻页功能(pdf文件预览)

kanno的博客 4027

Vue 3 中使用 vue - pdf - embed + vue3 - pdfjs 在线预览 PDF

在许多 Web 应用程序中,需要实现 PDF 文件的在线预览功能。Vue 3 作为流行的前端框架,配合 vue - pdf - embed 和 vue3 - pdfjs 库,可以轻松实现这一需求。本文将详细介绍如何在 Vue 3 项目中使用这两个库进行 PDF 在线预览。

Jiaberrr的博客 4108

Vue3实战:5分钟搞定vue-pdf-embed预览后端返回的PDF文件流(附完整代码)

本文详细解析了在Vue3项目中使用vue-pdf-embed组件预览后端返回的PDF文件流的实战方案。文章从环境搭建、核心依赖解析入手,重点阐述了如何将Blob或ArrayBuffer格式的文件流高效转换为组件可识别的数据源,并深入探讨了使用Object URL替代Data URL以优化性能与内存管理的核心技巧,帮助开发者快速实现稳定、高性能的PDF在线预览功能。

pluto的博客 684

vue-pdf-embed实现pdf预览、 打印、下载等功能

在vue3中通过vue-pdf-embed实现pdf预览打印下载等功能,主要使用的第三方库该库同时也支持在vue2中使用,本文主要针对vue3项目中如何使用进行简单介绍。二、安装vue-pdf-embed。

weixin_51080551的博客 5742

TL3562/3568内核驱动移植实战:解决无锡沐创N500L-AM4网口异常问题

本文详细介绍了在TL3562/3568平台上移植无锡沐创N500L-AM4网卡驱动的实战经验,重点解决了第四个网口通讯异常问题。通过升级驱动版本至rnpgbe-0.2.3,生成关键头文件并正确配置内核,最终实现四个网口稳定工作。文章还提供了性能优化建议和避坑指南,为类似硬件驱动移植项目提供参考。

weixin_28273593的博客 180

异常数据处理——3σ原则、箱线图

异常数据处理——3σ原则、箱线图 用不包括异常值的剩余数据的均值替换、删除DataFrame中某列有异常值的整行等方法

杨老师的小跟班(*∩_∩*) 9032

pdf预览Vue-PDF-Embed

https://www.npmjs.com/package/vue-pdf-embedhttps://jsfiddle.net/hrynko/273a59qr

qq_36022463的博客 9152

别再只接个放大器了!压电传感器测量电路(电压/电荷放大器)的5个实战配置要点

本文深入解析压电传感器测量电路中的5个关键实战配置要点,包括电缆长度选择、输入阻抗匹配、过载保护设计、低频噪声抑制及放大器选型策略。特别针对电压放大器和电荷放大器的应用场景差异提供工程实践建议,帮助工程师有效解决信号失真、噪声干扰等常见问题,提升测量精度和系统可靠性。

weixin_26869081的博客 301

【vue3+vue-pdf-embed】实现PDF+图片预览

需要PDF很大,有很多页,这时候预览需要分页,但是分页的时候有一个问题,就是一直找不到对应的总页码即pageCount ,有看很多文章,要么通过rendered方法传参,但文档根据不支持传参,图片预览很好解决了,可以用elementplus 自带的组件el-image 可实现。,也不需要什么高级文档操作功能,所以我就采用了。PDF预览可以用搜了一圈,有两个方案,一个是。,拿到了总页码,至此,后面就很容易解决了。后面自己试了一下,居然 使用。首先预览有本地预览和远程预览。需要实现PDF和图片预览。

qq_44062823的博客 905

深入解析Android14应用安装权限:从声明到授予的完整适配指南

本文深入解析Android14应用安装权限的适配方法,重点介绍了从权限声明到授予的完整流程。与Android13相比,Android14在权限管理机制上进行了重要调整,特别是通过AppOpsManager实现权限的对象化封装。文章详细讲解了权限声明的基础配置、Framework层适配方案、运行时权限授予方法以及常见问题排查指南,帮助开发者高效完成Android14权限适配。

o9p0q1的博客 693

HTB Attacking GraphQL Skills Assessment

通过枚举应用,利用GraphQL API,发现sql注入点,然后利用找到flag。

qq_33522010的博客 452

如何在Vue项目中快速集成专业PDF预览功能:vue-pdf-embed完全指南

vue-pdf-embed是一个专为Vue 3设计的PDF嵌入组件,让开发者能够轻松在Vue应用中实现专业级的文档预览功能。它支持密码保护文档处理、文本层搜索选择以及注释层显示,无需额外配置即可直接使用,是构建文档管理系统、在线阅读平台的理想选择。 ## 🚀 核心功能亮点 vue-pdf-embed提供了一系列强大特性,满足现代Web应用对PDF预览的各种需求: - **受控渲染**:精确

gitblog_00545的博客 1128

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要

阿星的博客 2万+

vue-pdf-embed+vue3-pdfjs预览pdf文件花屏问题

本文主要记录一下。

m0_48907877的博客 1312

MIMO-OFDM通信系统性能仿真及MATLAB实现

将MIMO和OFDM技术结合起来,可以充分利用两者的优点,进一步提高无线通信系统的性能。在MIMO-OFDM系统中,多个天线同时发射多个子载波,称为多天线多载波(MIMO-OFDM)系统。随着无线通信技术的不断发展,MIMO-OFDM技术因其高效、可靠和适应性等优点已被广泛应用于新一代通信系统中。本篇文章旨在介绍MIMO-OFDM通信系统的基本原理及其性能评估方法,并结合MATLAB提供相关代码实现。本篇文章介绍了MIMO-OFDM通信系统的基本原理和性能评估方法,并结合MATLAB提供了相关的实现代码。

学习使你进步。 2215

EXCEL VBA从入门到精通 前言

本书通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程,同时也介绍了常用的工具、资源、社区和协作平台等,方便读者进行进一步的学习和开发。我强烈推荐这本书给所有希望学习和掌握Excel VBA编程的读者。多样化的资源和工具介绍:本书介绍了丰富的工具和资源,包括官方文档、在线教程、代码库、论坛、博客等,方便读者进行进一步的学习和开发。详细的讲解和丰富的示例:本书从语法和对象开始讲解,通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程。第一节:什么是VBA 5。

1723

如何在Vue项目中轻松集成PDF预览功能:vue-pdf-embed的完整指南

vue-pdf-embed是一个专为Vue 3设计的PDF嵌入组件,它提供了在Vue应用中受控渲染PDF文档的能力,支持密码保护文档、文本层和注释层等功能,无需额外依赖或复杂配置。 ## 🚀 为什么选择vue-pdf-embed? 现代Web应用中,文档预览功能已经成为许多项目的必备需求。vue-pdf-embed作为一个轻量级且功能完善的Vue组件,具有以下优势: - ✅ 支持Vue 3

gitblog_00568的博客 833

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: Vue + Vant Picker实现省市区三级联动
逩跑鍀小学生
博客等级 码龄5年 37粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值