最近接收到一个优化需求:就是对之前的行程文档的图文介绍添加打印生成 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大小
一键导出 PDF 生成方案 生成 PDF 基本思路大多一致,先用 html2canvas 将 DOM 元素转换为 canvas,再利用 canvas 的 toDataURL 方法输出为图片,最后使用 jsPDF...jsPDF 是一个基于 HTML5 的客户端解决方案,用于在客户端 JavaScript 中生成 PDF 的库,支持文本、图片等格式。...借助 jsPDF,利用之前生成的 canvas 元素,可以直接在前端生成 PDF 文件。...代码实现 根据以上方案,实现一个 vue 插件,提供 PDF 一键导出功能: import html2Canvas from 'html2canvas' import JsPDF from 'jspdf...尽量提高生成图片质量,可以适当放大 canvas 画布,通过设置 scale 缩放画布大小,或者设置 dpi 提高清晰度。
jsPDF jsPDF库可以用于浏览器端生成PDF。...文字生成PDF 使用方法如下: // 默认a4大小,竖直方向,mm单位的PDF var doc = new jsPDF(); // 添加文本‘Download PDF’ doc.text('Download...','pt',[205, 155]) // 将图片转化为dataUrl var imageData = ‘data:image/png;base64,iVBORw0KGgo...’; //设置字体大小...通过html2canvas将遍历页面元素,并渲染生成canvas,然后将canvas图片格式添加到jsPDF实例,生成pdf。...其实主要利用了jsPDF的两点: 超过jsPDF实例格式尺寸的内容不显示( varpdf=newjsPDF('','pt','a4');demo中就是a4纸的尺寸) addImage有两个参数可以控制图片在
首先我们利用html2canvas将HTML网页保存成canvas图片,然后我们在利用jsPDF将canvas图片生成PDF文件。...所以我最终使用html2canvas+jsPDF的方式来实现。...实战案例 html2canvas+jsPDF 现在,我们来看看html2canvas+jsPDF的实现方式 首先需要引入html2canvas和jsPDF的依赖文件。大家可以从官网下载。...that.buttonShow; //不写会报错 window.jsPDF = window.jspdf.jsPDF;...catch (Exception e){ e.printStackTrace(); } } 工具类WKHtmlToPdfUtil和FileUtils我放到资源包中
最近接收到一个优化需求:就是对之前的行程文档的图文介绍添加打印生成 pdf 的功能 当然,我们需要依赖 html2canvas 和 jspdf.min.js 这两个库,html2canvas 是用于生成...canvas,jspdf.min.js 是用于生成 pdf 的。...首先我们需要引入 html2canvas, jspdf // 导出页面为PDF格式 import html2Canvas from 'html2canvas' import '..../jspdf.min.js' 我们将在 Vue 的原型上面添加一个全局方法,传入两个参数 1 selector 选择的元素 2 title 标题 判断选择的元素是否存在,不存在抛出错误,让用户知道 export...}).then(canvas => { }) } } } 因为我们这里需要进行分页打印,所以需要根据 a4 纸的大小进行计算
jsPDF 接下来让我们考虑一个名为 jsPDF 的开源库。这个库已经存在了至少 5 年,每周从 NPM 的下载量持续超过 20 万次。可以说这是一个很受欢迎的、经过实战检验的库。...jsPDF 的使用也相当简单。你可以创建一个新的 jsPDF 类的实例,给它一个你想导出的 HTML 内容的引用,然后提供任何其他附加的设置,如页边距大小或文档标题。...让我们看一下使用 jsPDF 的输出: 使用jsPDF导出的PDF 乍一看,这看起来还不错! PDF 包含我们漂亮的蓝色标题和条纹表行背景。它不包含浏览器打印方法所包含的任何多余页面元数据。...NPM 每周下载量超过 30 万次,寿命长达 7 年,这个库甚至比 jsPDF 更受欢迎,更资深。 在为我的 demo 程序构建导出功能时,pdfmake 的配置要比 jsPDF 难得多。...表格的列头和表脚在每一页上都是重复的,表格的行数不会被切掉,而且页面四面都有适当大小的边距,每个页面的页眉也是重复的,每个页面底部的页码也是重复的。
jsPDF库可以用于浏览器端生成PDF。...文字生成PDF 使用方法如下: // 默认a4大小,竖直方向,mm单位的PDF var doc = new jsPDF(); // 添加文本‘Download PDF’ doc.text('Download...','pt',[205, 155]) // 将图片转化为dataUrl var imageData = ‘data:image/png;base64,iVBORw0KGgo...’; //设置字体大小...通过html2canvas将遍历页面元素,并渲染生成canvas,然后将canvas图片格式添加到jsPDF实例,生成pdf。...其实主要利用了jsPDF的两点: - 超过jsPDF实例格式尺寸的内容不显示 (var pdf = new jsPDF('', 'pt', 'a4'); demo中就是a4纸的尺寸) - addImage
/commons/tableExport.jquery.plugin/libs/jsPDF/jspdf.min.js"> <script...icon-share' 五、服务端分页和客户端分页 所谓客户端模式,指的是在服务器中把要显示到表格的数据一次性加载出来,然后转换成JSON格式传到要显示的界面中,客户端模式较为简单,它是把数据一次性加载出来放到界面上
jsPDF库可以用于浏览器端生成PDF。...文字生成PDF 使用方法如下: // 默认a4大小,竖直方向,mm单位的PDF var doc = new jsPDF(); // 添加文本‘Download PDF’ doc.text('Download...','pt',[205, 155]) // 将图片转化为dataUrl var imageData = ‘data:image/png;base64,iVBORw0KGgo...’; //设置字体大小...实例中,也有添加html的功能,但某些元素无法生成在pdf中,因此可以使用html2canvas + jsPDF的方式将页面转成pdf。...通过html2canvas将遍历页面元素,并渲染生成canvas,然后将canvas图片格式添加到jsPDF实例,生成pdf。
/docs/index.html 图片生成PDF 添加引用 <script src="https://cdnjs.cloudflare.com/ajax/libs/<em>jspdf</em>/1.5.3/<em>jspdf</em>.debug.js...--save import <em>jsPDF</em> from '<em>jspdf</em>'; 单页下载 示例代码: html2canvas(document.querySelector(".page")).then(canvas...or “l”). unit string mm 单位 “pt” (points), “mm”, “cm”, “m”, “in” or “px”. format string/Array a4 首页的大小...可以使用:a0 - a10 b0 - b10 c0 - c10 默认为”a4”.也可以使用具体的大小数组 如: [595.28, 841.89] 添加图片 注意添加图片前一定要先添加页面。...该对象使用 left、top、right、bottom、x、y、width 和 height 这几个以像素为单位的只读属性描述整个矩形的位置和大小。
实现 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"; // 放到页面上
此方法简单明了:从页面创建屏幕截图,并把它放到 PDF 文件中。非常直截了当。...我们可以使用两个包来实现: Html2canvas,根据 DOM 生成截图 jsPdf,一个生成PDF的库 开始编码: npm install html2canvas jspdf 1import html2canvas...from 'html2canvas' 2import jsPdf from 'jspdf' 3 4function printPDF () { 5 const domElement =....then((canvas) => { 10 const img = canvas.toDataURL('image/png') 11 const pdf = new jsPdf...方案2:只使用 PDF 库 NPM上有几个库,如 jsPDF(如上所述)或PDFKit。他们的问题是,如果我想使用这些库,我将不得不重新调整页面结构。
导出PDF需要用到两个依赖包:html2canvas、jspdf 1、安装html2canvas和jspdf npm install html2canvas -S / yarn add html2canvas...-S npm install jspdf -S / yarn add jspdf -S 2、把导出PDF封装成一个公共方法 1、在src/common目录下新建exportPDF.js文件 exportPDF.js...: import html2canvas from 'html2canvas'; import jsPDF from 'jspdf'; /** * 导出PDF * @param {导出后的文件名}...window.devicePixelRatio : 2; // 下载尺寸 a4 纸 比例 let pdf = new jsPDF('p', 'pt', 'a4'); let width =...const ratio = 14400 / height; // height = 14400; width = width * ratio; } // 缩放为 a4 大小
jsPDF - To generate PDF from images.jsPDF,以图片为原型生成对应的PDF文件。...[1614135610985-image.png] 左边是输入框,右边是各种定制化配置,比如可以上传自己的字体、字体大小、字体颜色等。 我看了下,基本也就是需要我找个中文字体就行。
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
forks 开源地址:https://github.com/saurabhdaware/text-to-handwriting 用到的库 html2canvas - 将html元素转换成canvas jsPDF...可以自定义如下的参数 可以选择字体 也可以自行上传字体 调整字体大小 调整字体颜色 文字间距 自定义背景 支持中文 ...
属性和方法 2.1 属性介绍 Blob 对象拥有 2 个属性: size :只读,表示 Blob 对象中所包含的数据大小(以字节为单位); type :只读,值为字符串,表示该 Blob 对象所包含数据的...生成 PDF 文档 在浏览器端,利用一些现成的开源库,比如 jsPDF,我们也可以方便地生成 PDF 文档。... 客户端生成 PDF 示例 (function generatePdf() { const doc = new jsPDF(); doc.text...(); doc.setFontSize(40); doc.text(35, 25, 'Paranyan loves jsPDF'); doc.addImage(imgData, 'JPEG', 15,
领取专属 10元无门槛券
手把手带您无忧上云