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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java实现完美洗牌算法

    1问题描述有一个长度为2n的数组{a1,a2,a3,…,an,b1,b2,b3,…,bn},希望排序后变成{a1,b1,a2,b2,a3,b3,…,an,bn},请考虑有没有时间复杂度为O(n)而空间复杂度为O(1)的解法。2解决方案2.1位置置换算法下面算法的时间复杂度为O(n),空间复杂度为O(n)。packagecom.liuzhen.practice;publiccl…

    2022年4月7日
    58
  • spidermonkey学习

    spidermonkey学习JavaScript在浏览器中的应用几乎是尽人皆知的。实际上,JavaScript技术也可以使用在非浏览器应用程序当中,从而让应用程序具有自动的脚本功能。本文介绍了一种功能非常强大的JavaScript引擎SpiderMonkey。这个引擎是Mozilla浏览器的JavaScript引擎。该引擎接口定义清晰,模块化好。本文简要介绍了SpiderMonkey的基本结构,并讲解了如何在自己的应用

    2022年10月16日
    3
  • JSONArray和JSONObject的转换

    JSONArray和JSONObject的转换在项目日常开发中常常会遇到JSONArray和JSONObject的转换,很多公司刚入职的小萌新会卡在这里,今天和大家分享一下,有更厉害的大佬也可以指教一下!话不多说上硬菜publicstaticvoidmain(String[]args){Stringstr=“{“took”:26,“tid_out”:fale,”_shards”:{“total”:160,“succssf…

    2022年5月2日
    377
  • 3种水平垂直的方式「建议收藏」

    3种水平垂直的方式「建议收藏」1绝对定位+转换2弹性模型3单元格方式

    2022年7月3日
    23
  • [深度学习 – 实战项目] 行为识别——基于骨架提取/人体关键点估计的行为识别

    [深度学习 – 实战项目] 行为识别——基于骨架提取/人体关键点估计的行为识别行为识别——骨架提取/人体关键点估计我们可以通过深度学习,检测到一个人,但是那个人在做什么我们不知道。所以我们就想让神经网络既检测到人,又知道他在做什么。也就是对这个人的行为进行识别。一个人的行为可以有很多种,可以跑、跳、走、跌倒、打架……有一些我们可以看第一眼就知道他在干嘛,有些我们必须看一段才知道他在干嘛。所以我们要用神经网络来识别行为,就可以分成单帧图片的识别和连续帧图片的识别。如果是单帧图片的识别,例如举手、摆个姿势……等简单的动作,我们可以直接用卷积网络、或者直接用yolo进行训练。在数据集

    2022年6月21日
    52
  • CentOS7中配置网络连接[通俗易懂]

    CentOS7中配置网络连接[通俗易懂]    刚在VMware安装好的CentOS7,默认安装是没有开启配置网卡信息的,所以连不上网。尝试用两种配置来让CentOS7开启联网功能,一种是直接打开网络功能自动获取ip,会在设定的网段下面随机分配一个ip,另一种是设置固定ip,出于某些特殊的需求,例如要在局域网内做端口映射,需要将虚拟机设置成使用固定的局域网IP,即使虚拟机重启了,其局域网ip仍然不变。一、自动获取ip  …

    2022年5月27日
    36

发表回复

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

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