在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all
在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all
前天来了个新需求, 有一个授权书的文件要点击下载, 需要在前端生成, 以前没做过那就开始查资料吧,还真的发现有生成pdf文件的组件(此处感谢前辈们写的组件),叫做 jspdf.
然后还有一个把页面渲染成画布的插件,叫做 html2canvas, 那好,开心写吧.
但是首先这两个插件的导包就让我头疼, 因为网上的例子大多数都是js标签导包的,而我们用的是react框架, 版本号我最后在github上找到了,
/** 导出授权证书 */
exportCertificate(orderitem,item){
var jsonstr = eval('(' + orderitem.attachment + ')');
var title = item.title; // 如果要操作数据在这里写 // 然后把DOM元素传进去
html2canvas(document.getElementById('authorization'), {
allowTaint: false,// 这些参数的配置可以在官方api找到
taintTest: false,
letterRendering: true
}).then(function(canvas) {
var pageData = canvas.toDataURL( 'image/jpeg', 1.0);// 画布转为图片
var pdf = new jsPDF('', 'pt', 'a4');// 生成pdf对象,方向默认竖直,尺寸ponits,格式a4[595.28,841.89]
pdf.addImage(pageData, 'JPEG', 0, 0, 595.28, 592.28/canvas.width * canvas.height ); // addImage后两个参数控制添加图片的尺寸,此处将页面高度按照a4纸宽高比列进行压缩
pdf.save(title + '-authorization.pdf'); // 文件名可以自己取一个
});
}
html2canvas文档简书地址:https://www.jianshu.com/p/6a07e974a7e8
在使用旧版本的html2canvas时出现的问题,换行不被渲染,见图:
.png)




参考链接,谢谢大神们
https://www.cnblogs.com/jinzhenzong/p/9328985.html
https://blog.csdn.net/weixin_42078778/article/details/81487710
在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all的更多相关文章
- IOS下载查看PDF文件(有下载进度)
IOS(object-c) 下载查看 PDF 其实还是蛮容易操作的.在下载前,首先要把 IOS 可以保存文件的目录给过一遍: IOS 文件保存目录 IOS 可以自定义写入的文件目录,是很有限的,只能是 ...
- PHP通过sql生成CSV文件并下载,PHP实现文件下载
/** * PHP通过sql生成CSV文件并下载 * @param string $sql 查询sql,结果为二维数组 * @param array $title 数据,CSV文件标题 * @para ...
- C# 生成pdf文件客户端下载
itextsharp.dll 下载:http://sourceforge.net/projects/itextsharp/ 程序需引用:itextsharp.dll,itextsharp.pdfa.d ...
- 24.-Django生成csv文件及下载
一.csv文件定义 逗号分隔值(comma-separated values, csv,有时页称字符分隔值,因为分分隔字符页可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本) 说明:可被常见 ...
- php 在客户端生成txt文件并且下载
在访问php时生成txt文件 $filename = 'file.text'; //也可以是其他后缀格式的 $ua = $_SERVER["HTTP_USER_AGENT"]; f ...
- flask使用pymysql连接MySQL,生成xls文件并下载到本地
版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面. flask框架连接MySQL,我们使用pymsql这个工具,如下操作: ...
- 使用wcf编写坐标字符串生成shapefile文件,在iis发布供前端调用
项目有一需求,需要由坐标字符串(格式:x,y,点名)生成shapefile,由于在前台开发类似功能比较麻烦而且也不适用,最终决定使用WCF来实现,不借助现有GIS软件,基于GDAL实现. 实现过程如下 ...
- iOS实现pdf文件预览,上下翻页、缩放,读取pdf目录
最近有个朋友想做一个pdf预览,要求能够上下滑动翻页.带缩放.目录跳转功能. 因为之前我只做过简单的预览,那时直接用uiwebview实现的,这次找了下资料,发现一个比较好的库. 其原理实现: 自定义 ...
- meteor---在合并打包多个文件ZIP下载的功能
实现多个文件边打包边下载的功能,速度还可以,本人亲测,欢迎大家来指点archiver --用NPM安装这个模块---本人文件存储在file-collection 中,可以用fs : fs.create ...
随机推荐
- Python爬虫教程-05-python爬虫实现百度翻译
使用python爬虫实现百度翻译功能 python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取 ...
- Android碎笔录3——点击跳转
只要是view都能设置点击事件,不必要非得是Button. 要想实现跳转得三步走: 第一步.绑定 每个Layout都有一个一个java文件跟它绑定,这个Layout相关的代码都写在这个java文件里 ...
- PowerDNS Authoritative Server 3.3 发布
PowerDNS Authoritative Server 3.3 发布,该版本改进了不同验证器的交互操作,修复了不少 bug. PowerDNS Authoritative Server (PDNS ...
- CentOS 安装 OpenResty
方案一 1.在 CentOS 系统中添加 openresty 资源库sudo yum-config-manager --add-repo https://openresty.org/yum/cn/ce ...
- cin读取不知行列数的矩阵以及带逗号的整型数据
摘要:如果输入中给出了一个矩阵的具体的行列数,那很好办,循环读取就行了,如果没有给你具体的行列数,而且输入中的整型数据之间还有逗号,那应该怎么来读取呢?下面给出具体代码: 一.输入没有给出矩阵的具体行 ...
- 沉淀再出发:xml的意义和存在的价值
沉淀再出发:xml的意义和存在的价值 一.前言 学习了那么多的语言.框架.语法和基础知识,我们对于数据的理解或许有了一定的认识,但是如何描述.包装.传输.存储数据的手法和流程我们了解的或许并不多,其中 ...
- [转]unix/linux中的dup()系统调用
[转]unix/linux中的dup()系统调用 在linux纷繁复杂的内核代码中,sys_dup()的代码也许称得上是最简单的之一了,但是就是这么一个简单的系统调用,却成就了unix/linu ...
- 【[IOI2014]Wall 砖墙】
好像随便一卡就最优解了 malao告诉我这道题挺不错的,于是就去写了写 这两个操作很有灵性啊,感觉这么有特点的数大概是需要分块维护的吧 但是并没有什么区间查询,只是在最后输出整个序列 于是我们就直接用 ...
- C/C++读取一行
C语言 1. char buf[80]={0}; gets(buf); //可以读取空格, 回车结束输入 2. char buf[10] = {0}; scanf("%[^\n] ...
- C/C++ 格式化读取和读取一行
文件内容 23 21 4 1 1 0 114 1 1 1 8 112 5 0 0 0 114 1 0 0 0 115 52 4 1 0 1 134 4 0 1 12 131 4 1 1 0 133 5 ...