vue中将网页打印成pdf实例代码


Posted in Javascript onJune 15, 2017

整理文档,搜刮出一个vue中将网页打印成pdf的代码,稍微整理精简一下做下分享。

<template>
<div class="pdf-wrap" id="pdfWrap">
 <button v-on:click="getPdf">点击下载PDF</button>
 <div class="pdf-dom" id="pdfDom"></div>
</div>
</template>
<style lang="scss" scoped>

</style>
<script type="text/ecmascript-6">
 import html2Canvas from '@/components/html2canvas.js'
 import JsPDF from '@/components/jsPdf.debug.js'

 export default {
  methods: {
   getPdf: function () {
    let _this = this
    let pdfDom = document.querySelector('#pdfDom')
    html2Canvas(pdfDom, {
     onrendered: function(canvas) {
      let contentWidth = canvas.width
      let contentHeight = canvas.height
      let pageHeight = contentWidth / 592.28 * 841.89
      let leftHeight = contentHeight
      let position = 0
      let imgWidth = 595.28
      let imgHeight = 592.28 / contentWidth * contentHeight

      let pageData = canvas.toDataURL('image/jpeg', 1.0)

      let PDF = new JsPDF('', 'pt', 'a4')

      if (leftHeight < pageHeight) {
       PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
      } else {
       while (leftHeight > 0) {
        PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
        leftHeight -= pageHeight
        position -= 841.89
        if (leftHeight > 0) {
         PDF.addPage()
        }
       }
      }
      PDF.save(_this.pdfData.title + '.pdf')
     }
    })
    html2Canvas()
   },
  }
 }
</script>

需要引入

html2canvas.js'

jsPdf.debug.js

这两个插件库可轻松百度到。如果eslint验证报错,可在eslintignore中设置不对这两个文件进行验证。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
谈谈JavaScript中的函数与闭包
Apr 14 Javascript
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
css样式标签和js语法属性区别
Nov 06 Javascript
ExtJS如何设置与获取radio控件的选取状态
Jan 22 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
简单实现js浮动框
Dec 13 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 Javascript
通过实例学习React中事件节流防抖
Jun 17 Javascript
javascript 代码是如何被压缩的示例代码
May 06 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 #Javascript
Angularjs为ng-click事件传递参数
Jun 15 #Javascript
详解原生js实现offset方法
Jun 15 #Javascript
微信小程序 监听手势滑动切换页面实例详解
Jun 15 #Javascript
微信小程序canvas写字板效果及实例
Jun 15 #Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 #Javascript
bootstrap daterangepicker双日历时间段选择控件详解
Jun 15 #Javascript
You might like
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
Python数据集切分实例
2018/12/08 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
python重要函数eval多种用法解析
2020/01/14 Python
python——全排列数的生成方式
2020/02/26 Python
django实现模型字段动态choice的操作
2020/04/01 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
生产车间实习自我鉴定
2013/09/23 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
趣味运动会开幕词
2015/01/28 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL
element tree树形组件回显数据问题解决
2022/08/14 Javascript