广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue-pdf实现在线预览PDF文件
  • 144
分享到

Vue-pdf实现在线预览PDF文件

2024-04-02 19:04:59 144人浏览 独家记忆
摘要

前言 在大多数项目中都会遇到在线预览pdf文件,项目使用的是element ui,使用Vue-pdf实现。 安装依赖 npm install --save vue-pdf 相关

前言

在大多数项目中都会遇到在线预览pdf文件,项目使用的是element ui,使用Vue-pdf实现。

安装依赖


npm install --save vue-pdf

相关参数

参数介绍:

  • url :pdf 文件的路径,可以是本地路径,也可以是在线路径。
  • page: 当前显示的页数,比如第一页page=1
  • rotate : 旋转角度,比如0就是不旋转,+90,-90 就是水平旋转。
  • progress :当前页面的加载进度,范围是0-1 ,等于1的时候代表当前页已经完全加载完成了。
  • page-loaded :页面加载成功的回调函数,不咋能用到。
  • num-pages :总页数
  • error :加载错误的回调
  • link-clicked:单机pdf内的链接会触发。
  • print 这个是打印函数。 注意:谷歌浏览器会出现乱码,这个和字体有关系。

实现


<template>
    <div>
        <el-row>
            <el-button @click="onPreview" size="small">预览</el-button>
        </el-row>
        <el-dialog title="预览合同附件" :visible.sync="viewVisible" center width="60%" @close='closePreview'>
            <el-row :gutter="20">
                <span>共{{pageCount}}页, 当前第 {{pdfPage}} 页 </span>
                <el-button type="text" size="mini" @click.stop="previousPage">上一页</el-button>
                <el-button type="text" size="mini" @click.stop="nextPage">下一页</el-button>
            </el-row>
            <div>
                <pdf :src="src" :page="pdfPage" @num-pages="pageCount = $event" @page-loaded="pdfPage = $event" style="display: inline-block; width: 100%"></pdf>
            </div>
        </el-dialog>
    </div>
</template>
<script>
import pdf from 'vue-pdf'
import store from '@/store/'
export default {
    components:{
        pdf
    },
    data(){
        return {
            viewVisible: false,
            src: null,
            pdfPage : 1,
            pageCount: 0,
            token: store.getters.access_token,
        }
    },
    methods:{
        onPreview(){
            this.src = pdf.createLoadingTask({
                url: 'Http://localhost:8082/file/demo.pdf',
                httpHeaders: {Authorization:'Bearer '+ this.token}
            });
            this.src.promise.then(pdf => {
                this.viewVisible = true;
            });
        },
        closePreview(){
            this.pdfPage = 1;
        },
        previousPage(){
            let p = this.pdfPage
            p = p > 1 ? p-1 : this.pageCount
            this.pdfPage = p
        },
        nextPage(){
            let p = this.pdfPage
            p = p < this.pageCount ? p+1 : 1
            this.pdfPage = p
        }
    }
}
</script>

效果

注意点

1、URL

url为文件地址路径


this.src = pdf.createLoadingTask({
    url: 'http://localhost:8082/file/demo.pdf',
});

2、设置请求头

可以通过httpHeaders来设置token等参数


httpHeaders: {Authorization:'Bearer '+ this.token}

3、src

这点比较重要,网上很多帖子都是这样的


this.src.then(pdf => {
    this.viewVisible = true;
})

会报错 TypeError: this.src.then is not a function


TypeError: this.src.then is not a function
    at VueComponent.onPreview (index.vue?6ced:241)
    at click (index.vue?aaff:261)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    at VueComponent.invoker (vue.runtime.esm.js?2b0e:2179)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    at VueComponent.Vue.$emit (vue.runtime.esm.js?2b0e:3888)
    at VueComponent.handleClick (element-ui.common.js?5c96:9413)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    at htmlButtonElement.invoker (vue.runtime.esm.js?2b0e:2179)
    at HTMLButtonElement.original._wrapper (vue.runtime.esm.js?2b0e:6917)

正确的是这样的


this.src.promise.then(pdf => {
    this.viewVisible = true;
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Vue-pdf实现在线预览PDF文件

本文链接: https://www.lsjlt.com/news/126362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue-pdf实现在线预览PDF文件
    前言 在大多数项目中都会遇到在线预览PDF文件,项目使用的是element ui,使用vue-pdf实现。 安装依赖 npm install --save vue-pdf 相关...
    99+
    2022-11-12
  • vue-pdf实现文件在线预览
    本文实例为大家分享了vue-pdf实现文件在线预览的具体代码,供大家参考,具体内容如下 提示:记录一下vue-pdf使用方法,避免忘记,便于后面使用 前言 提示:以下是本篇文章正文内...
    99+
    2022-11-12
  • Vue3+Vue-PDF实现PDF文件在线预览实战
    目录概述项目实战创建 vue3 项目添加 PDF 预览插件概述 今天我们用 Vue3 + Vue-PDF 实现 Vue 版...
    99+
    2022-11-13
  • Vue3+Vue-PDF怎么实现PDF文件在线预览
    创建 vue3 项目我们先创建一个的 Vue3 项目, 在终端中输入命令pnpm create vite vue-pdf-preview选择 vue-ts 回车,cd 进入项目根目录,执行 pnpm install, 等待项目依赖包安装完成...
    99+
    2023-05-14
    PDF Vue3
  • 如何使用Vue3+Vue-PDF实现PDF文件在线预览
    这篇文章主要介绍“如何使用Vue3+Vue-PDF实现PDF文件在线预览”,在日常操作中,相信很多人在如何使用Vue3+Vue-PDF实现PDF文件在线预览问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使...
    99+
    2023-07-06
  • Vue怎么使用vue-pdf实现PDF文件预览
    这篇文章主要介绍了Vue怎么使用vue-pdf实现PDF文件预览的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么使用vue-pdf实现PDF文件预览文章都会有所收获,下面我们一起来看看吧。先看下效果&n...
    99+
    2023-07-05
  • Vue实现docx、pdf格式文件在线预览功能
    目录介绍docx安装使用PDF安装引入和使用pdf的放大和缩小多格式的文件渲染函数映射不支持的文件提示处理总结介绍 在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,...
    99+
    2022-11-13
  • vue如何实现在线预览PDF文档功能
    这篇文章主要介绍了vue如何实现在线预览PDF文档功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何实现在线预览PDF文档功能文章都会有所收获,下面我们一起来看看吧。下面通过一个实例来介绍在Vue.j...
    99+
    2023-07-05
  • Vue实现在线预览pdf文件功能(利用pdf.js/iframe/embed)
    前言 最近在做一个精品课程,需要在线预览课件ppt,我们的思路是将ppt转换为pdf在线预览,所以问题就是如何实现在线预览pdf了。 在实现的过程中,为了更好地显示效果,我采用了多...
    99+
    2022-11-12
  • vue3如何实现PDF文件在线预览功能
    目录概述正文创建 vue3 项目添加 PDF 预览插件总结概述 之前我们用 Reactjs + React-PDF 实现了 React 版的 PDF 文件预览,今天我们用 Vue3 ...
    99+
    2022-11-13
  • 前端实现docx、pdf格式文件在线预览
    介绍在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,本文主要是通过第三方库来实现文档预览功能,并将其封装成preview组件docxdocx的实现需要使用docx-preview插件安装npm i do...
    99+
    2022-11-22
    docx pdf 预览
  • 怎么使用vue-pdf插件实现pdf文档预览功能
    这篇文章主要介绍了怎么使用vue-pdf插件实现pdf文档预览功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用vue-pdf插件实现pdf文档预览功能文章都会有所收获,下面我们一起来看看吧。vue-p...
    99+
    2023-07-05
  • Java POI导出Word、Excel、Pdf文档(可在线预览PDF)
    导入依赖Pom.xml                     org.apache.poi             poi             3.14          org.apache.poi poi-oo...
    99+
    2023-09-20
    java word excel
  • 如何在vue中使用pdfjs预览pdf文件
    目录前言 思考 库目录解析和下载 使用方法 文件位置 实际调用 问题 总结 前言 在写项目的过程中,偶尔会有使用到pdf的文件,当我们想看pdf文件的时候,你的操作是不是先把pdf...
    99+
    2022-11-12
  • Office在线预览及PDF在线预览的实现方式大集合
    一、服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成sw...
    99+
    2023-08-31
    php word excel pdf
  • vue预览pdf、word、xls、ppt、txt文件的实现方法
    目录说下方法1. 在页面内加个 iframe2. word、xls、ppt这些文件3. 最终效果首先说下为什么要分享:网上教的都是特么的啥玩意!!!真特么垃圾,各种方法说不到点子上!...
    99+
    2022-11-13
  • Vue实现docx/xlsx/pdf等类型文件预览功能
    目录使用安装使用示例docx文档的预览excel文档预览pdf文档预览都2023年了,怎么文件预览还这么难! 发现了问题之后,就想着能不能实现一个简单的VUE组件库,能够解决以上问题...
    99+
    2023-02-13
    Vue docx文件预览 Vue xlsx文件预览 Vue pdf文件预览 Vue文件预览
  • Android之WebView加载PDF链接预览PDF文件
    文章目录 前言一、效果图二、实现步骤1.在项目main目录下新建一个assets2.新建一个js为index.js3.新建一个HTML为index.html4.xml布局4.Activity类...
    99+
    2023-09-01
    WebView加载PDF Android加载PDF pdf预览 webview加载PDF链接 Android webview
  • vue使用pdf.js预览pdf文件的方法
    我们在页面进行pdf预览的时候,由于有些文件不能够进行打印和下载,这时候我们使用window自带的pdf就很难满足客户的需求,因此需要另外的办法来支持我们进行特殊条件的pdf文件预览...
    99+
    2022-11-12
  • vue怎么预览pdf、word、xls、ppt、txt文件
    本篇内容主要讲解“vue怎么预览pdf、word、xls、ppt、txt文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么预览pdf、word、xls、ppt、txt文件”吧!说下方法...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作