最近做项目,遇到预览PDF这个功能,在网上找了找,大多推荐的是pdf.js,不过在Vue中还是想偷懒直接npm组件,最后找到了一个还不错的Vue-pdf 组件,GitHub地址:https://github.com/FranckFreiburger/vue-pdf#readme
不过一般GitHub上的注释比较简洁,所以这里把自己实际使用的过程总结了一下,下面贴代码
引用: npm install --save vue-pdf
template代码:
<template><div class="pdf" v-show="fileType === 'pdf'"><p class="arrow">// 上一页<span @click="changePdfPage(0)" class="turn" :class="{grey: currentPage==1}">Preview</span>{{currentPage}} / {{pageCount}}// 下一页<span @click="changePdfPage(1)" class="turn" :class="{grey: currentPage==pageCount}">Next</span></p>// 自己引入就可以使用,这里我的需求是做了分页功能,如果不需要分页功能,只要src就可以了<pdf:src="src" // src需要展示的PDF地址:page="currentPage" // 当前展示的PDF页码@num-pages="pageCount=$event" // PDF文件总页码@page-loaded="currentPage=$event" // 一开始加载的页面@loaded="loadPdfHandler"> // 加载事件</pdf></div>
</template>

js代码:<script>  // 引入PDF
  import pdf from 'vue-pdf'export default {components: {pdf},data () {return {currentPage: 0, // pdf文件页码pageCount: 0, // pdf文件总页数fileType: 'pdf', // 文件类型     src: '', // pdf文件地址
      }},  created: {    // 有时PDF文件地址会出现跨域的情况,这里最好处理一下    this.src = pdf.createLoadingTask(this.src)
  }method: {// 改变PDF页码,val传过来区分上一页下一页的值,0上一页,1下一页
      changePdfPage (val) {// console.log(val)if (val === 0 && this.currentPage > 1) {this.currentPage--// console.log(this.currentPage)
        }if (val === 1 && this.currentPage < this.pageCount) {this.currentPage++// console.log(this.currentPage)
        }},// pdf加载时
      loadPdfHandler (e) {this.currentPage = 1 // 加载的时候先加载第一页
      }}}</script>

实际效果

问题补充:  文件打印乱码问题解决方法

之前有人问了关于PDF打印乱码问题,我自己试了确实有这个问题,在官网找了一下,有人提交了代码解决了这个问题,现在我把方法附上

原始的打印页面,PDF格式乱码,主要是因为PDF里使用了自定义字体,不能识别

需要修改vue-pdf安装包的pdfjsWrapper.js文件

上面后缀为1的文件是原始的,红线框起来的是我修改之后的文件

替换之后,打印就能正常显示了,

博客园貌似不能上传文件,代码太多就不放上来了,如果有需要可以找我邮箱发你,或者到官网自己修改文件

git-hup地址:https://github.com/FranckFreiburger/vue-pdf/pull/130/commits/253f6186ff0676abf9277786087dda8d95dd8ea7,

转载于:https://www.cnblogs.com/steamed-twisted-roll/p/9648255.html

Vue PDF文件预览vue-pdf相关推荐

  1. Vue PDF文件预览打印vue-pdf

    Vue PDF文件预览vue-pdf 最近做项目,遇到预览PDF这个功能,在网上找了找,大多推荐的是pdf.js,不过在Vue中还是想偷懒直接npm组件,最后找到了一个还不错的Vue-pdf 组件,G ...

  2. 用vue-pdf包实现pdf文件预览,支持分页

    vue项目实现pdf文件预览功能 下载vue-pdf包 npm install --save vue-pdf template模板内容: //pdf组件 <pdf :src="pdfF ...

  3. vue+springboot文件预览

    一.下载OpenOffice 4 脚本之家下载地址:https://www.jb51.net/softs/595118.html 百度网盘: 链接:https://pan.baidu.com/s/1x ...

  4. pdf文件预览、打印

    前端 pdf 文件预览的方式有多种. html元素:<iframe>.<embed> <iframe :src="pdfUrl " style=&qu ...

  5. Java使用openOffice转PDF以及PDF文件预览乱码问题

    Java使用openOffice转PDF以及PDF文件预览乱码问题 使用openOffice,支持doc, docx, .xls, .xlsx, .ppt, .pptx转pdf 一:依赖 <de ...

  6. java pdf文件下载_Java后台返回PDF文件预览下载

    Java后台返回PDF文件预览下载 开始的代码的系统代码为: ResponseEntity onePdf = s3Wrapper.download(contractEntity.getContract ...

  7. 手机端pdf文件预览pdf.js使用方法详解

    虽然H5页面可以通过A直接访问html 但可惜的是 手机端H5页面这样做就直接变下载了 那么想要实现手机端的pdf文件预览就需要用到pdf.js了 首先 我们访问地址 http://mozilla.g ...

  8. mpvue PDF文件预览

    小程序中PDF文件预览问题 在小程序中可以ios端可以使用  <web-view :src="url"></web-view> 但是在Android端pdf ...

  9. vue 项目中分别使用 vue-pdf 插件和内嵌 iframe 实现 PDF 文件预览,缩放,旋转,下载,保存等功能 ?

    需求:在 vue  和 element-ui 项目中,有点击按钮预览,下载,打印 PDF 文件 需求,要求支持 PDF 的预览,上下页切换,首尾页切换,页码选择跳转,放大缩小,顺时针逆时针旋转,下载, ...

最新文章

  1. onbeforedunload事件
  2. 如何破解Red Hat Enterprise 4的root密码(救援有密码)
  3. jquery Syntax error, unrecognized expression:的解决方法
  4. springboot第十讲
  5. linux下安装python dlib依赖
  6. [react] 请说说什么是useEffect?
  7. java ssh环境 eclipse_SSH在eclipse中环境搭建
  8. 实战JavaScript:实现贪吃蛇——面向对象练习
  9. BIO、NIO、AIO的简单个人理解,同步异步和阻塞非阻塞的简单理解
  10. 《数学之美》知识点详细总结
  11. windows下V-Rep下载及安装教程
  12. 帝国时代3如何快速实现增加主城生命值
  13. 打印机管理系统解决方案
  14. 在Windows 7镜像中整合“SP2”补丁
  15. 【p093】细胞分裂
  16. 高等概率论 Chapter 6 Construction of a Probability Measure
  17. 海量数据分布式存储技术-作业五
  18. 一款基于jQuery仿淘宝红色分类导航
  19. Linux系统 运行小花仙游戏(针对2021年Flash停止维护的情况)
  20. 用Kali破解WiFi密码——以攻为守,发现自己网络的破绽,提升安全性

热门文章

  1. jmeter使用beanshell构造参数化
  2. Oracle11.2.0.4 windows32+64bit path补丁21+11.2.0.4.160419 p22064588 p22839608
  3. sql like N'%%',N 是代表什么意思 及Like语句详解
  4. 新年新气象,祝所有朋友心想事成
  5. Katalon Studio自动化测试框架使用【2】--- 项目设置(MacOS)
  6. flutter集成到原生工程
  7. 主机信息收集工具DMitry
  8. nrf52840 gpiote如何配置中断输入_STM32第四章外部中断管理
  9. Linux多线程矩阵,操作系统实验——多线程计算矩阵相乘
  10. 深圳大学计算机软件学院明仲,附件一-深圳大学计算机与软件学院.doc