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 相关文章推荐
Javascript和Ajax中文乱码吐血版解决方案
Dec 21 Javascript
优化javascript的执行速度
Jan 23 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
May 14 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
Aug 13 Javascript
初识简单却不失优雅的Vue.js
Sep 12 Javascript
vue组件间通信解析
Mar 01 Javascript
浅谈原生JS中的延迟脚本和异步脚本
Jul 12 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
在vue中多次调用同一个定义全局变量的实例
Sep 25 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
react-router-dom 嵌套路由的实现
May 02 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 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
实例浅析js的this
2016/12/11 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python读取图片任意范围区域
2019/01/23 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
PHP面试题及答案一
2012/06/18 面试题
活动宣传策划方案
2014/05/23 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
优秀党员申报材料
2014/12/18 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
爱国电影观后感
2015/06/19 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
go goroutine 怎样进行错误处理
2021/07/16 Golang