第二种 iText 和 第三种 wkhtmltopdf 需要后端java和服务端处理,这里就不说。
第一种方式中还可以分为两种方式:
这种方式有几种缺陷:
display: none; visiable: hidden;
等样式,否则导出的PDF为白板。# 安装
$ npm install html2canvas jspdf
第一种引入方式
import {
jsPDF as JsPDF } from 'jspdf'
import html2Canvas from 'html2canvas'
第二种引入方式
<script src="https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js">script>
<script src="http://html2canvas.hertzen.com/dist/html2canvas.min.js">script>
JsPDF 一共有4个可选参数
const doc = new JsPDF('p', 'px', 'a4')
arugments[0]
: 表示pdf的打印方向,默认是p
,纵向arguments[1]
: 表示pdf的单位,默认是mm
,毫米;可选值有pt, mm, cm, in, px, pc, em, ex
。arguments[2]
: 表示打印版式,默认'a4'
,可选值有a0~a10,b0~b10,c0~c10,dl,letter,government-letter,legal,junior-legal,ledger,tabloid,credit-card
。arguments[4]
: 表示是否只在PDF中输入字体,默认 false
。
doc.save('xxx.pdf')
参数说明
doc.save(filename, flag)
方法一共有两个参数。
arguments[0]
: PDF文件输入的名称。arguments[1]
: 是否返回 promise 对象,默认 false
。html2canvas(options) 一共有20个参数属性。
allowTaint
: 是否允许跨原点图像污染画布,默认 false。backgroundColor
: 画布背景色, 值为 null
时为透明色,默认 #ffffff
。canvas
: 用作绘图基础的现有画布元素,默认 null
。foreignObjectRendering
: 如果浏览器支持,是否使用ForeignObject
渲染,默认 false
。imageTimeout
: 加载映像的超时(毫秒)默认 15000。设置为0以禁用超时。ignoreElements
: 回调函数,用于从渲染中移除匹配元素,默认 (element) => false
。logging
: