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 相关文章推荐
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
window.open打开页面居中显示的示例代码
Dec 27 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
Feb 10 Javascript
jQuery中ajax的post()方法用法实例
Dec 26 Javascript
纯js实现重发验证码按钮倒数功能
Apr 21 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
拖动时防止选中
Feb 03 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
Mar 14 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
Vue实现小购物车功能
Dec 21 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
canvas 中如何实现物体的框选
Aug 05 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
python实现的简单文本类游戏实例
2015/04/28 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
Django中的AutoField字段使用
2020/05/18 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
大学生新闻专业个人自我评价
2013/11/12 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
大连导游词
2015/02/12 职场文书
简历自荐信范文
2015/03/09 职场文书
运动会致辞稿
2015/07/29 职场文书
学习心理学心得体会
2016/01/22 职场文书
施工安全协议书
2016/03/22 职场文书
数据库连接池
2021/04/06 MySQL
基于Python的EasyGUI学习实践
2021/05/07 Python
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
python创建字典及相关管理操作
2022/04/13 Python