vue 实现在线预览PDFpdf文件

这篇具有很好参考价值的文章主要介绍了vue 实现在线预览PDFpdf文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

功能描述

最近在项目开发中,客户有这样一个需求:在线预览上传上去的PDF文件,之前没接触过这块,通过查阅资料,发现有个PDF预览组件,只需要引入进来就可以,下面来进入到干货模式!!!

前端代码

第一步

在components下创建PdfView文件夹,并创建一个.vue文件

vue pdf在线预览,Vue,vue.js,javascript,前端

第二步

将下面的代码复制到(index.vue).vue文件里,

<template>
  <div style="background-color: #FFFFFF;width: 100%;margin: 0 auto;">
    <pdf
      :page="pageNum"
      :src="url"
      @progress="loadedRatio = $event"
      @num-pages="pageTotalNum=$event"
    ></pdf>
    <br>
    <el-button-group style="position: relative;top: 8%;left: 43%;transform: translate(-50%,-50%);">
      <el-button type="primary" icon="el-icon-arrow-left" size="mini" @click="prePage">上一页</el-button>
      <el-button type="primary" size="mini" @click="nextPage">下一页<i class="el-icon-arrow-right el-icon--right"></i></el-button>
    </el-button-group>
    <div style="marginTop: 10px; color: #409EFF;text-align: center;">{{ pageNum }} / {{ pageTotalNum }}</div>
    <br>
  </div>
</template>

<script>
import pdf from 'vue-pdf'

export default {
  name: 'Pdf',
  components: {
    pdf,
  },
  props: {
    url: {
      type: String,
      default: ''
    },
  },
  data() {
    return {
      pageNum: 1,
      pageTotalNum: 1, //总页数
      loadedRatio: 0, //当前页面的加载进度,范围是0-1 ,等于1的时候代表当前页已经完全加载完成了
    }
  },
  created() {
    console.log(this.url,"pdf")
  },
  methods: {
    // 上一页
    prePage() {
      let page = this.pageNum
      page = page > 1 ? page - 1 : this.pageTotalNum
      this.pageNum = page
      document.getElementById("pdfId").scrollIntoView();
    },

    // 下一页
    nextPage() {
      //找到元素 scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内
      let page = this.pageNum
      page = page < this.pageTotalNum ? page + 1 : 1
      this.pageNum = page
      document.getElementById("pdfId").scrollIntoView();
    }
  }
}
</script>

第三步

在需要使用这个组件的.vue文件里注入进来,注意 引入的路径是否正确,这段代码我就不贴出来了,自行写一下就可以,一共就两行。

vue pdf在线预览,Vue,vue.js,javascript,前端

第四步

重点:使用pdf组件

解释
filePreviewModal:是否显示的意思,定义这么一个全局变量即可,默认为false不显示。
filePreviewUrl:文件地址。

<a @click="filePreview(record)" v-if="roleCOde=='admin'">预览</a>
<j-modal :visible='filePreviewModal' :width='1400' cancelText='关闭' switchFullscreen title="预览" @cancel="filePreviewModal = false">
     <template>
       <div>
         <pdfView :url="filePreviewUrl" style="width: 600px;height: 900px;"></pdfView>  
       </div>
     </template>
     <template slot="footer">
       <div>
         <a-button type="white" @click="filePreviewModal = false">关闭</a-button>
       </div>
     </template>
</j-modal>

filePreviewUrl:上传文件的地址+文件名

filePreview(record){
       this.filePreviewUrl = 'http://'+record.document
       this.filePreviewModal = true
     },

结束语

有兴趣的博主们可以关注一下,后期会经常分享在项目开发中遇到一些新的功能以及处理的Bug会及时更新在本博主的主页中哦!!!文章来源地址https://www.toymoban.com/news/detail-670438.html

到了这里,关于vue 实现在线预览PDFpdf文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件

    【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容 【Vue】vue2项目使用swiper轮播图2023年8月21日实战保姆级教程 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件 提示:这里可以添加本文要记录的大概内容: vue

    2024年02月07日
    浏览(50)
  • vue,uniapp的pdf等文件在线预览

    uniapp文件在线预览方案 做个网页用kkFileView插件实现文件预览,uniapp就用web-view来展示 下面是我写的示例查看PDF文件,先将PDF下载路径转为Base64 vue通过iframe打开查看 uniapp通过web-view来查看

    2024年02月04日
    浏览(46)
  • 前端vue3实现本地及在线文件预览(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

    (一)微软office免费预览( 推荐 ) 支持doc/docx/xls/xlsx/ppt/pptx等多种office文件格式的免费预览 (二)XDOC文档预览云服务  移动端和PC端无插件预览PDF、OFD、Word、WPS等多种格式文档 本地或内网预览需要借助插件实现,pdf、mp3、mp4等主要靠原生标签或浏览器自带功能,尽量减少

    2024年02月05日
    浏览(75)
  • vue - - - - - 在线预览常见文件格式 .doc, .docx, .xls, .xlsx,.pdf

    关于一些文件的在线预览,最简易的实现方式是什么呢? 写在前面 .png, .jpg, .jpeg 等图片格式 直接预览http/https地址 即可 .pdf 文件 直接预览http/https地址 即可 .doc, .docx, .xls, .xlsx 等类型文件,需要在预览地址之前拼接上 https://view.officeapps.live.com/op/view.aspx?src= .ofd 等类型文件,需

    2024年02月09日
    浏览(78)
  • vue2 pdfjs-2.8.335-dist pdf文件在线预览功能

    1、首先先将 pdfjs-2.8.335-dist 文件夹从网上搜索下载,复制到public文件夹下. 2、在components下新建组件PdfViewer.vue文件 3、在el-upload 中调用 pdf-viewer 组件 4、在el-upload 中的 on-preview方法中加上对应的src路径  internalPreview(file) { //判断需要预览的地方加 props—pdfView                

    2024年01月19日
    浏览(48)
  • vue+pdf.js预览本地pdf文件(可以复制文本,滚动页码展示)

    1、安装pdfjs-dist插件,推荐使用2.0.943这个版本 2、页面中引入使用 3、页面标签 3、解析pdf,获取pdf所有页数据,使用canvas渲染,并使用TextLayerBuilder创建文本层,可以复制文本信息 在渲染pdf数据时,当pdf文件很大渲染量很多时,会导致页面卡住,无法执行其他操作;这涉及到

    2024年01月21日
    浏览(51)
  • 前端js react vue怎么实现在线预览doc文档

    先说结论: 目前在纯前端层面没有很好的方案,基本都需要服务端的介入。 优点 :简单易用,无需配置 缺点 :文档需要支持外网访问,且文档会是公开可见的,所以对于一些内部敏感的文档来说,这个显然是不可行的。 需要后端介入配合 onlyoffice地址 这个也要先在服务器

    2024年02月15日
    浏览(85)
  • vue2 使用pdf.js 实现pdf预览,并可复制文本

            需求:pdf预览,并且可以选中pdf的内容进行复制。                 在ruoyi的vue前端项目中用到,参考了网上不少文章,因为大部分没给具体的pdf.js版本,导致运行过程中报各种api 错误,经过尝试以下版本可用,故记录一下:         安装依赖:         vue 页面

    2024年01月19日
    浏览(58)
  • vue 在线预览PDF

    vue 使用 vue-pdf 实现pdf在线预览 报错:MainTemplate.hooks.hotBootstrap has been removed (use your own RuntimeModule instead) Package not compatible with Vue cli version 5.x pdfjs 官网地址 使用案列 可能报错:file origin does not match viewer’s。 直接注释掉web/viewer.js vue预览本地pdf文件方法之iframe pdf文件,为什么有

    2024年02月11日
    浏览(45)
  • vue在线预览word、excel、PDF

    1、安装依赖 如果是vue2.6版本或以下还需要额外安装 @vue/composition-api 2、预览WORD代码 3、预览EXCEL 4、预览PDF 5、项目参考地址

    2024年02月09日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包