1.先安装两个插件

//页面转图片

npm install --save html2canvas

//图片转PDF

npm install jspdf --save

2. 在需要导出的dom节点增加ref='pdf' 例如

<div ref="pdf"> 这是待转换的页面,点击 <button @click="handleExport">导出</button> 点击导出PDF</div>

3.定义导出方法

handleExport() {

downloadPDF(this.$refs.pdf);

},

4.在页面导入 import { downloadPDF } from "@/utils/pdf.js";

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;

//let imgHeight = 700/contentWidth * contentHeight;

//一页pdf显示html页面生成的canvas高度;

var pageHeight = contentWidth / 592.28 * 841.89;

let totalHeight = contentHeight;

// 第一个参数: l:横向  p:纵向

// 第二个参数:测量单位("pt","mm", "cm", "m", "in" or "px")

let pdf = new jsPDF("p", "pt");

let position = 0;

//   pdf.addImage(

//     canvas.toDataURL("image/jpeg", 1.0),

//     "JPEG",

//     0,

//     0,

//     imgWidth,

//     imgHeight

//   );

if (totalHeight < pageHeight) {

pdf.addImage( canvas.toDataURL("image/jpeg", 1.0), 'JPEG', 0, 0, imgWidth, imgHeight);

} else {

while (totalHeight > 0) {

pdf.addImage( canvas.toDataURL("image/jpeg", 1.0), 'JPEG', 0, position, imgWidth, imgHeight)

totalHeight -= pageHeight;

position -= 841.89;

//避免添加空白页

if (totalHeight > 0) {

pdf.addPage();

}

}

}

// pdf.addImage(

//     canvas.toDataURL("image/jpeg", 1.0),

//     "JPEG",

//     0,

//     position,

//     imgWidth,

//     imgHeight

// );

pdf.save("导出.pdf");

};

5.点击导出即可成功

vue 生成PDF(A4标准PDF分页)相关推荐

  1. html2Canvas + jsPDF vue生成pdf(A4纵向或A3横向)

    1: 第一个.将页面html转换成图片 npm install --save html2canvas 第二个.将图片生成pdf npm install jspdf --save 2:创建名称 html ...

  2. 长内容生成pdf 防止内容pdf分页隔断

    本案例是根据HTML内容文本先转换成图片,再把图片生成pdf,不一定适合所有项目,只是项目工作中的记录 生成pdf import html2canvas from 'html2canvas' impo ...

  3. vue生成pdf文件

    在网上找的资源,第一次做这样的功能,记录一下学习. 大概思路就是将html转换成canvas,获取canvas的宽高,将canvas转换成图片.最后将图片转换成pdf. 在网上找过很多资源,帮助自己解 ...

  4. vue 在线访问word,excel,pdf 文件以及打印

    git 项目代码 一.pdf 1. vue-pdf 安装 npm i --save vue-pdf 语法 在组件种使用import pdf from 'vue-pdf'pdf.createLoadin ...

  5. 前端vue项目-关于下载文件pdf/excel

    最近在做一些需求,需要下载一些文件信息,最频繁的就是下载excel文件到本地了 看过了很多方法,做个整理吧哈哈哈哈 参考的文章链接: https://www.cnblogs.com/jiangweic ...

  6. vue页面内容保存为PDF

    1.安装插件html2canvas+jspdf npm i -s html2canvas jspdf 2.在src下新建util文件夹并新建htmlToPdf.js,添加如下代码 import htm ...

  7. 在线文件/文档预览/分页分片预览 之开源kkfileview(word转pdf,pdf截取,pdf转图片,Aspose jobConverter , OpenOffice ,libreoffice )

    前提说明 浏览器不能直接浏览word文件,但可以浏览pdf文件!!! 可以后台把word,excel 转成成pdf.然后给前端预览: 业界常用的开源工具有:Aspose jobConverter ,  ...

  8. 页面截图导出为PDF,以及PDF强行截断分页问题的处理

    页面截图导出为PDF,以及PDF强行截断分页问题的处理 需求 将页面内容截图导出为PDF文件,如果有高度过高的表格或图片,尽量不截断而是放在下一页展示. 思路 1.将需要导出的dom,都用一个特殊的类 ...

  9. 记录一次使用JS生成word后端转换PDF功能

    大致思路 接到一个需求,将vue页面生成word,并且也可以生成pdf 前端VUE生成WORD 因为使用的是VUE大致也是分为两种方法 jquery的wordExport插件(这里使用VUE不建议使用 ...

  10. Vue将当前页面转为PDF并下载

    一.安装所需依赖 1.将页面html转换成图片 npm install --save html2canvas 2.将图片生成pdf npm install jspdf --save 二.在公共文件夹下 ...

最新文章

  1. Gradle学习之基础篇
  2. zabbix简介(第一章第一节)
  3. springMVC教程--拦截器详解
  4. java模拟数据库压测_写并发压测 java 脚本你必须会的 3 个类
  5. I Hate It (HDU 1754)
  6. matlab表白_表白 | 北航男生想找个女朋友,我身高179,希望女生体贴一点
  7. 并查集(UnionFindSet)
  8. 撑起百万亿参数模型想象力!英伟达发布新一代SuperPOD超算,AI算力新巅峰!
  9. EntityFramework 元数据 设计分析
  10. 1965: 求矩阵中最小元素及其位置
  11. 《决战Linux到精通》,你的Linux水平将从入门到入魔「建义收藏」
  12. ios适配iPhone和iPad
  13. 金色传说:SAP-FICO-COPA:创建销售订单时,获利能力段不自动带出,报错消息号KE0C133:特性值 2720000100000001对于特性 EXTWG 不存在 (外部物料组)
  14. 淘气的小丁-将图片切换成背景
  15. 树莓派3b GPIO编号
  16. The Sandbox 开启 2022 年新征途,Mega City 土地销售来啦
  17. apache上放多个项目_20个创新的Apache项目
  18. Linux内核调试技术指南
  19. Google到底有多强大
  20. linux mmc 读写,这个mmc读取linux的原因是什么

热门文章

  1. 扒一扒贝索斯的接班人,为何选他挑起大梁?
  2. 基于模糊RBF神经网络轨迹跟踪matlab程序
  3. AD18原理图绘制步骤
  4. 员工考勤管理系统c语言,员工考勤信息管理小程序,考勤信息管理小程序
  5. php画股票k线图,读股票数据画K线图很不错的Delphi源码
  6. 网页打印和ActiveX控件打印
  7. OpenCore引导配置说明第六版
  8. 启动计算机实现5秒开机,win10提高开机速度的设置教程 电脑五秒开机优化步骤...
  9. 世界第一行销之神杰 亚伯拉罕首次中国大陆行
  10. 【eoeAndroid社区索引】android 条形码的知识汇总