vue 实现下载pdf格式的文件

第一步 安装下载插件

npm install html2canvas jspdf --save

第二步 给vue原型上面挂载一个下载页面pdf的方法;在项目工具方法存放文件夹utils中创建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 '@/components/utils/htmlToPdf'
// 使用Vue.use()方法就会调用工具方法中的install方法
Vue.use(htmlToPdf)

第四步 页面中直接使用

<template>
  <div>
    <div id="pdfDom">我是要下载的pdf的格式的文件</div>
    <button @click="xiazai">下载pdf</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      htmlTitle: '页面导出PDF的名称'
    }
  },
  methods: {
    xiazai() {
      console.log(this.getPdf())
    }
  }

}
</script>

相关推荐

  1. vue 实现下载pdf文件

    2024-03-16 23:00:01       20 阅读
  2. PDF是什么文件

    2024-03-16 23:00:01       39 阅读
  3. vue 下载pdf以及其他文件方法

    2024-03-16 23:00:01       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 23:00:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 23:00:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 23:00:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 23:00:01       20 阅读

热门阅读

  1. 输入一个数求它是一个几位数

    2024-03-16 23:00:01       22 阅读
  2. 共享库的创建gcc选项“-shared -fPIC -WI”

    2024-03-16 23:00:01       22 阅读
  3. perl 用 XML::Parser 解析 XML文件,访问哈希

    2024-03-16 23:00:01       22 阅读
  4. redis的过期策略以及内存淘汰机制

    2024-03-16 23:00:01       23 阅读
  5. 【Android】TextView前增加红色必填项星号*

    2024-03-16 23:00:01       21 阅读
  6. Vue3.0+vite vite.config.ts配置与env

    2024-03-16 23:00:01       18 阅读
  7. 【嵌入式——QT】线程同步

    2024-03-16 23:00:01       20 阅读
  8. Qt是什么?

    2024-03-16 23:00:01       19 阅读
  9. 第1章第2节:SAS语言基础

    2024-03-16 23:00:01       23 阅读
  10. 3月16日ACwing每日一题

    2024-03-16 23:00:01       19 阅读
  11. View UI清除表单

    2024-03-16 23:00:01       21 阅读