首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案

最近接收到一个优化需求:就是对之前的行程文档的图文介绍添加打印生成 pdf 的功能 当然,我们需要依赖 html2canvas 和 jspdf.min.js 这两个库,html2canvas 是用于生成...canvas,jspdf.min.js 是用于生成 pdf 的。...首先我们需要引入 html2canvas, jspdf import html2canvas from 'html2canvas' import '....+ '对应的dom节点') } 设置背景色为白色,然后转成图片后,获取截断处图片像素点,从截断处往上一行行扫描像素点颜色,碰到这一行颜色都是全白的,代表是从这里开始截断,将这个高度开始将往下的内容都放到下一页...html页面高度 var leftHeight = canvas.height var a4Width = 595.28 var a4Height = 841.89 //A4大小

3.7K31
您找到你想要的搜索结果了吗?
是的
没有找到

如何将HTML表格转换成精美的PDF

jsPDF 接下来让我们考虑一个名为 jsPDF 的开源库。这个库已经存在了至少 5 年,每周从 NPM 的下载量持续超过 20 万次。可以说这是一个很受欢迎的、经过实战检验的库。...jsPDF 的使用也相当简单。你可以创建一个新的 jsPDF 类的实例,给它一个你想导出的 HTML 内容的引用,然后提供任何其他附加的设置,如页边距大小或文档标题。...让我们看一下使用 jsPDF 的输出: 使用jsPDF导出的PDF 乍一看,这看起来还不错! PDF 包含我们漂亮的蓝色标题和条纹表行背景。它不包含浏览器打印方法所包含的任何多余页面元数据。...NPM 每周下载量超过 30 万次,寿命长达 7 年,这个库甚至比 jsPDF 更受欢迎,更资深。 在为我的 demo 程序构建导出功能时,pdfmake 的配置要比 jsPDF 难得多。...表格的列头和表脚在每一页上都是重复的,表格的行数不会被切掉,而且页面四面都有适当大小的边距,每个页面的页眉也是重复的,每个页面底部的页码也是重复的。

6.7K20

所见即所得——HTML转图片组件开发

实现 HTML 导出为 PDF 目前市面上 HTML 导出 PDF 的实现方式有多种,如 jsPDF (https://github.com/parallax/jsPDF)、iText (https:/...在不同情况下我们应该使用不同的解决方案: 方案 优点 缺点 分页 图片 表格 链接 中文 特殊字符 jsPDF 1、整个过程在客户端执行(不需要服务器参与),调用简单 1、生成的 pdf 为图片形式,且内容失真...服务器需要安装 wkhtmltopdf 环境;2、根据网址生成 pdf,对于有权限控制的页面需要在拦截器进行处理 支持 支持 支持 支持 支持 支持 今天我们使用在客户端执行(不需要服务器参与)的方式——jsPDF...导入 jsPDF npm install --save jspdf HTML 导出为PDF JS // 导出为.../ 设置下载文件的名字 d.download = fileName; // 界面上隐藏该按钮 d.style.display = "none"; // 放到页面上

2.9K40

前端生成PDF,让后端刮目相看

PDF 原本并非为小屏幕电子阅读设计的文件标准,它来自于印刷——基于纸张大小进行的排版。我们可以把它当成纸质文稿的电子化,非电子文本,而是电子化的印刷了东西的纸张。...常用的前端生成PDF 文件方法 方法一 html2canvas+ jsPdf的方法将HTML 转换成图片后,在将图转PDF文件 适用场景:适用单页PDF文件,且终端设备一致 示例代码: HTML: <html...); doc.save('sample-file.pdf'); } }); }) 缺点: 生成的PDF文件由图片构成,内容无法拷贝,放大后不清晰 分页打印位置无法控制 方法二 jsPDF...直接基于Dom对象生成PDF 文件 jsPDF,支持添加页码 适用场景: 适合简单的页面布局,如常规的二维表,但复杂的报表样式定义Dom元素,使用起来就异常复杂了。...60, left: 40, width: 522 }; // all coords and widths are in jsPDF

2.9K30
领券