首页 > 其他分享 >导出页面为PDF格式

导出页面为PDF格式

时间:2024-02-24 16:11:08浏览次数:19  
标签:canvas Vue 导出 let htmlToPdf leftHeight PDF 页面

 

安装 (注意安装顺序)

 npm install --save html2canvas  npm install --save jspdf

文件htmlToPdf.js

// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
export default {
  install (Vue, options) {
    Vue.prototype.getPdf = function () {
      var title = this.htmlTitle
      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 './utils/htmlToPdf' // 使用Vue.use()方法就会调用工具方法中的install方法 Vue.use(htmlToPdf)

 组件中应用

<el-button size="mini" @click="getPdf('#pdfDom')">pdf</el-button>

 

标签:canvas,Vue,导出,let,htmlToPdf,leftHeight,PDF,页面
From: https://www.cnblogs.com/zyx-blog/p/18031188

相关文章

  • 保存CSDN博客为PDF
    打开浏览器开发者工具的控制塔,输入以下代码回车。(function(){$("#side").remove();$("#comment_title,#comment_list,#comment_bar,#comment_form,.announce,#ad_cen,#ad_bot").remove();$(".nav_top_2011,#header,#navigator").remove();$(".p4co......
  • js_将excel内容先存入数据库,再将数据显示到页面
    <%--将excel数据显示到页面--%><scripttype="text/javascript">//原创来自www.luofenming.com//首先监听input框的变动,选中一个新的文件会触发change事件document.querySelector("#testFile").addEventListener("change",function(){......
  • 记录pyinstaller 打包 pdfplumber 问题解决过程
    今天有一个pdf文件处理需求,使用pdfplumber库完成,python环境是3.11+win10pyinstaller5.10.1打包完成后,工具可以顺利打开,但是执行处理的时候报错File"pypdfium2_raw\bindings.py",line93,in<module>File"pypdfium2_raw\bindings.py",line83,in_register_library......
  • java 异步导出zip压缩包
    需求:图片文件太大,采用压缩包下载/** *图片zip压缩包下载 *@paramresponse *@paramzipName压缩包名字 *@paramurls文件图片下载URL路径 *@paramimagesUrlsURL与对应文件名字map *@throwsException */publicstaticvoidexportZip(HttpServletRespon......
  • Playwright nodejs切换页面tab
    主要使用下面的代码awaitpage.bringToFront();录制代码时,鼠标点击页面tab的代码没有录制进去,需要手动加上面一行代码完整的代码如下import{test,expect}from'@playwright/test';test('test',async({page})=>{awaitpage.goto('https://www.baidu.com/')......
  • 微信里打开的h5项目,实现h5跳转至微信关注公众号页面
    实现功能:在微信里打开的h5项目,想要引流去关注微信公众号。实现思路:通过公众号关注链接,跳转至公众号关注页面。实现步骤:关注公众号的链接:https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzIyOTQ5ODI1NA==#wechat_redirect把链接中的蓝色字体部分替换为自己的公众......
  • 《书虫》全套149册PDF电子书
    《书虫》简介“书虫”系列是外研社和牛津大学出版社联合为中国英语学习者奉献的一大精品,丛书为世界优秀文学名著的英文简写本或原创作品,具有提高读者英文水平和陶冶情操的双重作用。本丛书自问世以来深受广大学生、英语学习者的喜爱,连续多年热销不衰。此套装包含了书虫系列的所有......
  • ubutun部署nginx 静态页面资源
    本教程使用安装包安装安装前你需要安装以下依赖apt-getinstallgccapt-getinstalllibpcre3libpcre3-devapt-getinstallzlib1gzlib1g-devsudoapt-getinstallopensslsudoapt-getinstalllibssl-dev说明:Nginx是高度自由化的Web服务器,它的功能是由许多模块来支持......
  • Python处理Word,Excel,PDF
    openpyxl模块处理Excel表安装以下命令意思是:指定D盘下的Python解释器用豆瓣的源安装openpyxl模块D:\PycharmProjects\Study\venv\Scripts\python.exe-mpipinstallopenpyxl-ihttp://pypi.douban.com/simple--trusted-host=pypi.douban.com基本概念openpyxl库有三大模......
  • 爬取搜狗指定词条对应的搜索结果页面(简易网页采集器)
    #UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求载体的身份标识为某一款浏览器,说明是正常用户通过浏览器发起的正常的请求#如果检测到非浏览器发起的请求,则表示请求可能为不正常的请求(爬虫),那么有可能就会拒绝该请求#UA:User-Agent:(请求身份载体的身份标识)i......