当前位置: 首页 > 编程笔记 >

Vue如何将页面导出成PDF文件

沈畅
2023-03-14
本文向大家介绍Vue如何将页面导出成PDF文件,包括了Vue如何将页面导出成PDF文件的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了Vue将页面导出成PDF文件的具体代码,供大家参考,具体内容如下

我在前端岗位上要实现个可视化图表页的PDF文件导出,在这里给大家分享下使用jsPDF和html2canvas包将Vue页面导出成PDF的方法

1. 下载npm包

npm install html2canvas
npm install jspdf

2. 创建插件.js文件

Vue-cli项目的话是在./utils文件夹下,我在这里使用的nuxt框架,所以是在./plugins文件夹下。

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

export default {
 install (Vue, options) {
  Vue.prototype.getPdf = function () {
   var title = this.pdfTitle; // 导出的pdf文件名
   html2Canvas(document.querySelector(this.pdfSelector), { //导出的html元素
    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');
   })
  }
 }
}

上面的插件代码可以直接复制,然后在引用的Vue文件中填入自己的参数就可以了。

3. 修改引用页面

导出按钮调用getPdf方法,data填入参数。

<template>
 <div id="pdfPrint">
    <!-- 调用getPdf方法 -->
    <el-button @click="getPdf('#pdfPrint')">保存为PDF</el-button>
 </div>
</template>

<script>
export default {
 data() {
  return {
   // 填入导出的pdf文件名和html元素
   pdfTitle: '因子评价报告',
   pdfSelector: '#pdfPrint',
  }
 },

大概就是这样啦,非常地简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我必须提供一些导出功能到我的网站,例如CSV或PDF。Java是否有功能强大且免费的工具将HTML页面转换为PDF格式? 问题答案: 与一起使用可以将HTML内容转换为PDF。 以下示例在某种程度上帮助您理解XHTML到PDF的转换。 使用飞碟API的示例 : 您需要以下库: core-renderer.jar iText-2.0.8.jar 您可以在中找到这些资源。 例1:使用XML

  • 我使用的是PrimeFaces 6.1。我正在尝试使用dataExporter组件导出带有页脚的dataTable。页脚正确导出为CSV和XLS格式,但对于PDF,它只是拒绝包含它。尝试同时使用p:column的footerText和f:facet footer,得到了相同的行为。 我还尝试切换到PrimeFaces扩展导出器,它最终在PDF导出中包含了页脚,但也包含了一些我不知道如何排除的表格列

  • 我已经在Reporting Services中构建了一个报告,当我们在Internet Explorer中浏览到该报告时,我们希望能够以PDF格式导出该报告。它可以工作,但因为页面太宽,它将右边的列剪切并显示在下一页(PDF格式)。我将方向改为横向,但它仍然会切断右侧的柱子。然后,我将页面大小改为合法纸张,它可以放在一页纸上,但我们需要的是信纸大小的报告。有没有一种方法可以压缩报告以适应信件大小的

  • 本文向大家介绍C#实现pdf导出 .Net导出pdf文件,包括了C#实现pdf导出 .Net导出pdf文件的使用技巧和注意事项,需要的朋友参考一下 最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码、可以成功的实现导出pdf文件。  在编码前需要在网上下载个itextsharp.dll,此程序集是必备的。楼主下载的是5.0版本,之前下了个5.4的似乎不好用。  下载之后直接添加

  • 问题内容: 尝试使用iText将越南文文档导出为PDF时遇到问题。我将越南语单词放在.xml文件中,像这样 然后让Java从xml文件中获取短语,然后使用以下方法将其转换为Unicode: 之后,将String导出为PDF-编码为UTF-8。但是程序无法显示越南语字符“ \ u1ED5”和“ \ u1EE9”。输出变为“ T chc tham gia”。能否请您告诉我如何解决此问题?谢谢 :) 问

  • 在jasper-report中生成PDF/A包含许多缺陷,并且在某些版本的jasper-report中不受支持。这就是为什么我决定传递这篇问答文章的原因,它指出了将一个带有图形的简单报表导出到PDF/a所必需的步骤和库版本 示例数据(usersrep.csv) 如果将报告导出为pdf,我需要做什么来生成pdf/A-1A?

  • 我有一个横向的pdf,是一个“页面扩展”。 > 我需要在中间垂直地将页面分成两半。 我使用此设置将pdf切成两半:此设置将获取页面的左侧部分 上面的命令工作正常。我现在的问题是,我需要设置类似于拆分页面大小的MeDM ox、Cropbox、Bleedbox、Trimbox和artbox。在上面的实例中;它应该是750x1085。 在GS上运行的正确命令/设置应该是什么,以便Mediabox、Cro

  • 问题内容: 我需要将任意PDF文档的页面导出为jpeg / png / etc格式的一系列单个图像。我需要用Java做到这一点。 尽管我确实了解iText,PDFBox和其他各种Java pdf库,但我希望找到一些工作示例或操作方法的指针。 谢谢。 问题答案: 这是一种实现方法,它结合了Web上的一些代码片段。 如何将PDF绘制到图像中? https://pdf- renderer.dev.jav