当前位置: 首页 > news >正文

旅游网站的建设背景自驾游自由行网站建设

旅游网站的建设背景,自驾游自由行网站建设,黄江镇仿做网站,公司官网系统该方法导出的pdf大小是A4纸的尺寸,如果大于1页需要根据元素高度进行截断的话,页面元素需要加 class ergodic-dom,方法里面会获取ergodic-dom元素,对元素高度和A4高度做比较,如果大于A4高度,会塞一个空白元素…

该方法导出的pdf大小是A4纸的尺寸,如果大于1页需要根据元素高度进行截断的话,页面元素需要加 class ergodic-dom,方法里面会获取ergodic-dom元素,对元素高度和A4高度做比较,如果大于A4高度,会塞一个空白元素,确保每一个元素在换页的时候不会被分割。

import exportPDFMixin from '@/mixins/exportPDFMixin';
mixins: [exportPDFMixin],
 <span v-show="showEdit" class="export textR" @click="exportPDF('pdfDom', '导出的pdf名称')">导出</span>
//exportPDFMixin.js
import html2Canvas from 'html2canvas';
import JsPDF from 'jspdf';
export default {data() {return {showEdit: true}},methods: {exportPDF(elId, title = "pdf") {this.showEdit = false;this.$nextTick(() => {this.downloadPDF(elId, title);})},downloadPDF(elId, title) {html2Canvas(document.querySelector(`#${elId}`), {allowTaint: true,useCORS: true,onclone: (documentclone) => {this.formatNode(documentclone);}}).then((canvas) => {let contentWidth = canvas.widthlet contentHeight = canvas.heightlet pageHeight = contentWidth / 592.28 * 841.89let leftHeight = contentHeightlet position = 0let imgWidth = 595.28let imgHeight = 592.28 / contentWidth * contentHeightlet 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 -= pageHeightposition -= 841.89if (leftHeight > 0) {PDF.addPage()}}}PDF.save(title + '.pdf');this.showEdit = true;})},formatNode(documentclone) {let pageHeight = documentclone.querySelector("#pdfDom").scrollWidth / 592.28 * 841.89;let lableListID = documentclone.getElementsByClassName('ergodic-dom');for (let i = 0; i < lableListID.length; i++) {let multiple = Math.ceil((lableListID[i].offsetTop + lableListID[i].offsetHeight) / pageHeight)if (this.isSplit(lableListID, i, multiple * pageHeight)) {let divParent = lableListID[i].parentNode // 获取该div的父节点let _H = multiple * pageHeight - (lableListID[i].offsetTop + lableListID[i].offsetHeight)let newNode = this.getFooterElement(_H)let next = lableListID[i].nextSibling // 获取div的下一个兄弟节点// 判断兄弟节点是否存在if (next) {// 存在则将新节点插入到div的下一个兄弟节点之前,即div之后divParent.insertBefore(newNode, next)} else {// 不存在则直接添加到最后,appendChild默认添加到divParent的最后divParent.appendChild(newNode)}}}},getFooterElement (remainingHeight, fillingHeight = 85) {let newNode = document.createElement('div')newNode.style.background = '#fff'newNode.style.width = 'calc(100% + 8px)'newNode.style.marginLeft = '-4px'newNode.style.marginBottom = '0px'newNode.style.height = (remainingHeight + fillingHeight) + 'px' // pdf截断需要一个空白位置return newNode},isSplit (nodes, index, pageHeight) {return nodes[index].offsetTop + nodes[index].offsetHeight < pageHeight && nodes[index + 1] && nodes[index + 1].offsetTop + nodes[index + 1].offsetHeight > pageHeight},}
}
http://www.yayakq.cn/news/597633/

相关文章:

  • it彩票网站建设维护工程师丰泰建设集团有限公司网站
  • 安防 光速东莞网站建设百度流量推广
  • 上海网站建设书生商友通用ppt模板免费
  • 报价网站系统wordpress图片压缩软件
  • 峰峰专业做网站了解网站开发 后台流程
  • 广州网站设计找哪里武威网站建设价格
  • 织梦如何做汽车贸易网站wordpress如何将文章链接地址
  • 黔西南州做网站百度一下电脑版网页
  • 企业网站建设有哪些好处想在网上做推广
  • 江门网站制作设计云南建设招标网站首页
  • 专业网站开发软件如何做 网站映射
  • 国内做网站网站手机上安装wordpress
  • 浙江金华网站建设wordpress 分表
  • 河北做网站哪家公司好装饰公司在哪个网站上接活
  • 上海服装集团网站建设手机上哪个网站
  • 上海网站建设86215网站建设管理工作情况汇报
  • 19楼网站模板广州建网站的公司有哪些
  • 百度头条怎么做网站aap手机网站建设
  • 长宁区网站建设网页中美贸易最新消息
  • 视频网站seo怎么做wordpress 什么值得买 我要爆料
  • 诸城网站建设哪家好seo公司排名榜
  • 用wordpress制作网站模板网站推广现状
  • php网站屏蔽词怎么做中企动力集团
  • 深圳建网站三千网站后台首页设计
  • 海口网站建设哪家专业找外包公司做个网站多少钱
  • 宣传网站建设背景全国招聘网站排名
  • 福建建设人才网站网站检测工具
  • 安监网站如何做紧急预案备案自己做网站需要什么技能
  • 棋牌类网站开发上海公司注册的详细流程
  • 邹平网站建设公司青龙建站教程