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 相关文章推荐
IE中jscript/javascript的条件编译
Sep 07 Javascript
JavaScript 对象模型 执行模型
Dec 06 Javascript
JS打印gridview实现原理及代码
Feb 05 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
jQuery 判断是否包含在数组中Array[]的方法
Aug 03 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
js实现自定义路由
Feb 04 Javascript
Angularjs实现控制器之间通信方式实例总结
Mar 27 Javascript
详解JavaScript栈内存与堆内存
Apr 04 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 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带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php的大小写敏感问题整理
2011/12/29 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
vue+element UI实现树形表格
2020/12/29 Vue.js
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
浅析matlab中imadjust函数
2020/02/27 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
八项规定对照检查材料
2014/08/31 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
新郎答谢词
2015/01/04 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
详解JS数组方法
2021/11/20 Javascript