Vue使用pdfobject实现预览pdf的示例详解
之前写过一篇预览pdf的,Vue使用vue-pdf实现PDF文件预览 ,大家按需所用
一般项目中在上传文件之前可能会有 先预览一下,看是否符合要求,符合再上传,这里先说了pdf文件,使用pdfobject库,也很方便
安装
pnpm add pdfobject
引入
import pdf from 'pdfobject'
使用
这里使用会借助于FileReader,FileReader用于读取文件
// 点击文件上传回调 handlePreview(file) { const { raw } = file // 预览pdf // FileReader用于读取文件 let reader = new FileReader() reader.readAsDataURL(raw) // 这里只需要将文件传进去就可以了 reader.onload = e => { // reader.result 同 e.target.result // 1.文件名 2.要将pdf渲染到的指定位置(dom元素) 3.指定在embed标签中的显示的宽度 pdf.embed(reader.result, '#previewPdfAndDocx', { width: '100%' }) } },
效果
我这里没在上传之前判断,这里是上传之后,点击文件的时候进行预览,也可以在上传文件之前进行预览,然后决定是否进行上传。根据具体项目需求来
补充
除了上文,还可以利用pdfobject实现其他功能,希望对大家有所帮助
效果1:在指定位置(当指定位置为全局时)浏览PDF
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>在指定div中浏览PDF</title> <!--在此引入bootstrap只为初始化样式div样式--> <link rel="stylesheet" href="css/bootstrap.min.css" /> <style> /* 添加样式是为了实现全屏效果 */ html,body{ height: 100%; overflow: hidden; } #example1{ height: 100%; } .pdfobject-container{ /* height: 500px; */ } .pdfobject{ /* border: 1px solid #666; */ } </style> </head> <body> <div id="example1"></div> <script type="text/javascript" src="js/pdfobject.min.js"></script> <script> // 我的pdf文件放在项目的pdf文件夹下,名字叫做Java.pdf PDFObject.embed("pdf/Java.pdf", "#example1"); </script> </body> </html>
效果2:在指定位置(当指定位置为局部时)浏览PDF
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>在指定div中浏览PDF</title> <!--在此引入bootstrap只为初始化样式div样式--> <link rel="stylesheet" href="css/bootstrap.min.css" /> <style> html,body{ height: 100%; overflow: hidden; /* 添加背景颜色是为了方便查看整个body范围 */ background-color: cornflowerblue; } #example1{ /* 设置放置PDF的div的样式 */ height: 50%; width: 50%; } /* PDF容器样式 */ .pdfobject-container{ /* height: 500px; */ } /* PDF样式 */ .pdfobject{ /* border: 1px solid #666; */ } </style> </head> <body> <div id="example1"></div> <script type="text/javascript" src="js/pdfobject.min.js"></script> <script> // 我的pdf文件放在项目的pdf文件夹下,名字叫做Java.pdf PDFObject.embed("pdf/Java.pdf", "#example1"); </script> </body> </html>
效果3:指定从多少页开始阅读(必须同时指定显示PDF的div)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>在指定div中浏览PDF</title> <!--在此引入bootstrap只为初始化样式div样式--> <link rel="stylesheet" href="css/bootstrap.min.css" /> <style> /* 添加样式是为了实现全屏效果 */ html,body{ height: 100%; overflow: hidden; } #example1{ height: 100%; } .pdfobject-container{ /* height: 500px; */ } .pdfobject{ /* border: 1px solid #666; */ } </style> </head> <body> <div id="example1"></div> <script type="text/javascript" src="js/pdfobject.min.js"></script> <script> // 我的pdf文件放在项目的pdf文件夹下,名字叫做Java.pdf,指定PDF从20页开始阅读 PDFObject.embed("pdf/Java.pdf", "#example1", {page: "20"}); </script> </body> </html>
到此这篇关于Vue使用pdfobject实现预览pdf的示例详解的文章就介绍到这了,更多相关Vue pdfobject预览pdf内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vue element el-form 多级嵌套验证的实现示例
本文主要介绍了vue element el-form 多级嵌套验证的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08浅谈vue-cli加载不到dev-server.js的解决办法
本篇文章主要介绍了浅谈vue-cli加载不到dev-server.js的解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-11-11Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
这篇文章主要介绍了Vue基于vuex、axios拦截器实现loading效果及axios的安装配置,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-04-04vscode 使用Prettier插件格式化配置使用代码详解
这篇文章主要介绍了vscode 使用Prettier插件格式化配置使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08
最新评论