VUE 网页生成 PDF[通俗易懂]

VUE 网页生成 PDF[通俗易懂]保存当前网页为PDF格式到本地一、安装依赖1.npminstall–savehtml2canvas//作用是html转图片2.npminstalljspdf–save//再将图片转为pdf二、设置格式函数importhtml2Canvasfrom’html2canvas’importJsPDFfrom’jspdf’exportdef…

大家好,又见面了,我是你们的朋友全栈君。

保存当前网页为PDF格式到本地

一、安装依赖

1. npm install --save html2canvas  // 作用是html转图片
2. npm install jspdf --save  // 再将图片转为pdf

在这里插入图片描述

二、设置格式函数

import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'

export default{
  install (Vue, options) {
    Vue.prototype.getPdf = function (title) {
      html2Canvas(document.querySelector('#pdfDom'), {
        allowTaint: true
      }).then(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(title + '.pdf')
      }
      )
    }
  }
}

在这里插入图片描述

三、main.js引入

import htmlToPdf from './htmlToPdf';

Vue.use(htmlToPdf);

在这里插入图片描述

四、运用

在这里插入图片描述

五、遇到问题

在这里插入图片描述
如图,在导出文件时,发现网络错误,可能是因为下载器不支持,首先换浏览器试一次,如果可以下载,则就是下载器不支持。

作者微信公众号“怪東瓜”,有问题私聊,我们共同探讨实用技术,练出最美身材。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145983.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CAN协议学习(一)

    CAN协议学习(一)一、CAN协议的特点1)在总线空闲时,所有单元都可以发送消息,两个以上单元同时发送消息时,对各消息的Identifier进行逐位仲裁比较,仲裁获胜的单元(具有较高优先级)可继续发送消息,仲裁失败的单元停止发送。2)消息中没有地址,消息广播到总线上,任何总线上的单元都可以接收消息。在总线上增加单元,不会影响到其它的单元。3)最高数据传输速率1Mbps(距离小于40m),最远传输距离10k…

    2022年6月28日
    26
  • checkbox选中和不选中 jqu_jquery checkbox 选中不选中

    checkbox选中和不选中 jqu_jquery checkbox 选中不选中展开全部$(function(){//动态绑定默认状态//$(“#ck”).attr(“checked”,true)//选中//$(“#ck”).attr(“checked”,false)//未选中//点击判断选中还是未选中$(“#ck”).click(function(){if($(this).is(“:checked”)){alert(“选中”);}else{alert…

    2022年6月30日
    18
  • c++和java的前景谁更好?

    c++和java的前景谁更好?两门语言都学到能写App的程度是不难。汉小哲觉得但是精通哪怕一门语言都是非常有挑战的。1、C语言是继机器编码、汇编语言之后第一个和计算机语言最为接近的语言,所以它做底层主流语言地位是不可动摇的,java的市场份额比c语言要大,但是在性能上面,C语言要比java快,但是c语言学习没有java简单,在工资方面很多公司c语言的待遇要比java的好。2、一般的C语言,不仅仅说的是c,而是c和c++,c/c++学习难度要大,应用面没有java广,java学习简单写,应用广,比如web开发、手机应有软件开

    2022年7月9日
    22
  • java开发中各种中文乱码问题解决策略「建议收藏」

    java开发中各种中文乱码问题解决策略「建议收藏」一、request获取表单提交中文数据乱码问题的解决post提交方式处理中文方法通过post方式提交form表单时,首先会把数据放到request缓冲区里面,request缓冲区默认编码是iso8859-1,这个编码不支持中文,所以解决这个问题的方法就是设置request缓冲区的编码,即request.setCharacterEncoding(“utf-8”);2、get提交方式处理中

    2022年7月8日
    19
  • 关于VMware无法输入许可证密钥的方法

    关于VMware无法输入许可证密钥的方法首先,把电脑里的VMware卸载掉设置—-应用—-找到VMware——修改—-删除VMware不要保留任何配置文件其次,找到你的VMware安装文件,要知道它在哪或者把它放在一个比较好找的地方打开任务管理器—左上角文件—-运行新任务—然后按图片走等待安装完毕后就能正常输入许可证密钥了…

    2022年9月14日
    0
  • Deepfakes中文版,汉化版下载,各换脸软件下载(都已整理好)

    Deepfakes目前用于深度换脸的程序基本都是用python编程语言基于tensorflow进行计算。以下列出几款常用的换脸程序优缺点浅析,用户可以根据自己的爱好和水平来选择,以下软件均需要先安装windows版本的VS2015,CUDA9.0和CuDNN7.0.5(fakeapp教程,deepfakes视频deepfakes中文站(deepfakes.com.cn))下面几个程序的对比和官网下载地址,上deepfakes中文站(deepfakes.com.cn)获得百度云地址。1.Open

    2022年4月3日
    1.2K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号