
第二种 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: