iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue页面如何生成PDF
  • 617
分享到

Vue页面如何生成PDF

2023-06-30 16:06:16 617人浏览 独家记忆
摘要

这篇文章主要讲解了“Vue页面如何生成pdf”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue页面如何生成PDF”吧!安装依赖npm install --save&nb

这篇文章主要讲解了“Vue页面如何生成pdf”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue页面如何生成PDF”吧!

安装依赖

npm install --save html2canvas  // 页面转图片npm install jspdf --save  // 图片转pdf

页面转图片

新建一个 index.vue 页面:

<template>  <div ref="pdf">    这是待转换的页面,点击     <button @click="handleExport">导出</button> 按钮,完成导出操作。  </div></template><script>import {downloadPDF} from "@/util/pdf.js"  //工具方法,导出操作export default {  name: "pdf",  data() {    return {};  },  methods: {    handleExport(){      downloadPDF(this.$refs.pdf)    }  }};</script>

页面很简单,一段话加上一个导出按钮。整个页面被设置别名 (ref=“pdf”),导出的时候通过别名导出整个页面。

按钮点击事件中调用了一个工具方法 downloadPDF(),来自于工具类 pdf.js:

import html2canvas from "html2canvas";export const downloadPDF = page => {  html2canvas(page).then(function(canvas) {    page.appendChild(canvas);  });};

也很简单,首先引入了 html2canvas,定义downloadPDF方法,接受一个参数就是要导出的内容,可以使用id获取,也可以使用 ref 。

运行结果:

Vue页面如何生成PDF

当我们点击导出按钮后,在现有的页面增加了一行相同的内容。通过元素检查器可以看到增加的这行内容实际是一个 canvas 图像,里面的按钮已经不可以操作了。

这样,页面转换图片的过程就完成了。

图片转PDF

首先给index.vue改造一下,为了让我们导出的pdf好看一点,使用el-table做个表格,其它的导出逻辑不变:

<template>  <div ref="pdf">        <el-table      :data="tableData"      >      <el-table-column        prop="date"        label="时间"        width="180">      </el-table-column>      <el-table-column        prop="name"        label="姓名"        width="180">      </el-table-column>      <el-table-column        prop="address"        label="对我说">      </el-table-column>    </el-table>    <button @click="handleExport">导出</button>  </div></template><script>import {downloadPDF} from "@/util/pdf.js"  //工具方法,导出操作export default {  name: "pdf",  data() {    return {                tableData: [{            date: '昨天',            name: '刘德华',            address: '你好帅'          }, {            date: '今天',            name: '郭富城',            address: '你最帅'          }, {            date: '明天',            name: '张学友',            address: '你贼帅'          }, {            date: '每天',            name: '黎明',            address: '我没你帅'          }]    };  },  methods: {    handleExport(){      downloadPDF(this.$refs.pdf)    }  }};</script>

效果图:

Vue页面如何生成PDF

然后改造一下pdf.js,增加上pdf转换逻辑

import html2canvas from "html2canvas";import jsPDF from "jspdf";export const downloadPDF = page => {  html2canvas(page).then(function(canvas) {    canvas2PDF(canvas);  });};const canvas2PDF = canvas => {  let contentWidth = canvas.width;  let contentHeight = canvas.height;    let imgHeight = contentHeight;  let imgWidth = contentWidth;  // 第一个参数: l:横向  p:纵向  // 第二个参数:测量单位("pt","mm", "cm", "m", "in" or "px")  let pdf = new jsPDF("l", "pt");  pdf.addImage(    canvas.toDataURL("image/jpeg", 1.0),    "JPEG",    0,    0,    imgWidth,    imgHeight  );  pdf.save("导出.pdf");};

canvas2PDF 方法中创建了jsPDF的实例,然后添加上一步生成的图片,最后保存导出pdf文件。

导出的文件效果:

Vue页面如何生成PDF

A4打印适配

因为部分需求有需要生成的页面使用A4纸打印,那么pdf生成时的宽高尺寸就不能像上面一样设定。需要按照A4纸的尺寸比例调整(其它打印需求同理,使用对应纸张比例即可)

那么改造一下 pdf.js

import html2canvas from "html2canvas";import jsPDF from "jspdf";export const downloadPDF = page => {  html2canvas(page).then(function(canvas) {    canvas2PDF(canvas);  });};const canvas2PDF = canvas => {  let contentWidth = canvas.width;  let contentHeight = canvas.height;  //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高  let imgWidth = 595.28;  let imgHeight = 592.28/contentWidth * contentHeight;  // 第一个参数: l:横向  p:纵向  // 第二个参数:测量单位("pt","mm", "cm", "m", "in" or "px")  let pdf = new jsPDF("p", "pt");  pdf.addImage(    canvas.toDataURL("image/jpeg", 1.0),    "JPEG",    0,    0,    imgWidth,    imgHeight  );  pdf.save("导出.pdf");};

这里面将 imgWidth 和 imgHeight 按照A4纸比例调整后,导出的pdf就可以正常比例打印了。

感谢各位的阅读,以上就是“Vue页面如何生成PDF”的内容了,经过本文的学习后,相信大家对Vue页面如何生成PDF这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Vue页面如何生成PDF

本文链接: https://www.lsjlt.com/news/330032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue页面如何生成PDF
    这篇文章主要讲解了“Vue页面如何生成PDF”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue页面如何生成PDF”吧!安装依赖npm install --save&nb...
    99+
    2023-06-30
  • Vue页面生成PDF的最佳方法推荐
    目录前言安装依赖页面转图片图片转PDFA4打印适配总结前言 最近项目有个需求,将系统统计的数据生成分析报告,然后可以导出成PDF。 这种方法可以有两种,一种是直接调用打印,用户通过浏...
    99+
    2024-04-02
  • vue怎么将html页面生成高清晰pdf文件
    本文小编为大家详细介绍“vue怎么将html页面生成高清晰pdf文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么将html页面生成高清晰pdf文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。需要借...
    99+
    2023-06-29
  • vue将html页面生成高清晰pdf文件的方法
    目录效果图如下流文件转成file总结需要借助html2canvas和jspdf这两个插件 首先是将页面用html2canvas生成base64的图片,再用jspdf将图片插入到pdf...
    99+
    2024-04-02
  • 如何生成PDF
    这篇文章将为大家详细讲解有关如何生成PDF,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、后台生成PDFthinkphp利用MPDF插件示例代码:public ...
    99+
    2024-04-02
  • Vue如何集成Iframe页面
    这篇文章主要为大家展示了“Vue如何集成Iframe页面”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue如何集成Iframe页面”这篇文章吧。1. 项目需求...
    99+
    2024-04-02
  • iReport如何生成pdf打印
    这篇文章将为大家详细讲解有关iReport如何生成pdf打印,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先下载ireport版本 ,我下载的是 iReport-5.0.4  编辑模板 ...
    99+
    2023-05-30
    ireport pdf
  • JAVA如何生成pdf文件
    这篇“JAVA如何生成pdf文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JAVA如何生成pdf文件”文章吧。一、简介P...
    99+
    2023-07-04
  • 如何生成小程序页面码
    生成小程序页面码的方法:登录小程序管理后台。点击导航栏中的“工具”选项菜单,再选“生成小程序码”功能。输入小程序名称的全称,点击下一步。再点击“获取更多页面路径”。在弹出来的对话框中,“开启入口”里输入任一小程序管理成员的微信号,点击开启。...
    99+
    2024-04-02
  • webpack如何自动生成html页面
    这篇文章主要为大家展示了“webpack如何自动生成html页面”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“webpack如何自动生成html页面”这篇文章吧...
    99+
    2024-04-02
  • Vue如何将页面导出为图片或者PDF
    这篇文章主要介绍Vue如何将页面导出为图片或者PDF,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!导出为图片1.将页面html转换成图片npm install h...
    99+
    2024-04-02
  • vue如何将base64流数据转成pdf文件并在新页面打开
    目录将base64流数据转成pdf文件并在新页面打开base64转二进制文件流并显示1.判断base类型 这里提供图片和pdf2.base转二进制文件流3.填坑4.完整代码总结将ba...
    99+
    2023-02-08
    vue base64 base64流数据转pdf vue base64流数据
  • 如何使用JavaScript将当前页面保存成PDF
    本篇内容介绍了“如何使用JavaScript将当前页面保存成PDF”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • vue如何将页面转成图片
    这篇文章主要介绍了vue如何将页面转成图片的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何将页面转成图片文章都会有所收获,下面我们一起来看看吧。随着前端开发的快速发展,现在越来越多的人开始注重如何将前端...
    99+
    2023-07-05
  • python如何使用reportlab生成pdf
    这篇文章主要介绍“python如何使用reportlab生成pdf”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python如何使用reportlab生成pdf”文章能帮助大家解决问题。Intro项...
    99+
    2023-06-29
  • VB.NET如何生成静态页面和分页原理
    这篇文章主要为大家展示了“VB.NET如何生成静态页面和分页原理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何生成静态页面和分页原理”这篇文章吧。1、VB.NET生成静态页面和分...
    99+
    2023-06-17
  • asp与php中如何定时生成页面
    这篇文章主要介绍asp与php中如何定时生成页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP版本的的定时生成页面的:<php$file = dirname(__FILE__)....
    99+
    2023-06-20
  • vue写的页面如何弄成小程序
    这篇“vue写的页面如何弄成小程序”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue写的页面如何弄成小程序”文章吧。1.借...
    99+
    2023-07-04
  • itext生成PDF设置页眉页脚的实例详解
    itext生成PDF设置页眉页脚的实例详解实例代码: package com.labci.itext.test; import java.awt.Color; import java.io.FileNotFoundException; im...
    99+
    2023-05-31
    itext pdf te
  • Vue前端如何实现生成PDF并下载功能详解
    目录1. 安装及引入2. 封装导出 pdf 文件方法配置详解封装导出 pdf 文件方法(utils/htmlToPdf.js)相关组件中应用效果待优化部分总结思路: 通过 html2...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作