用pdfmake生成pdf中文文档
生成pdf文件,有两种实现的方法,一种是直接使用text生成pdf,不需要获取元素,一种是获取html元素,通过元素生成;通过对这两种方法的使用,我最终选择了使用text生成。在此过程中使用到了padMake这个js库(https://www.npmjs.com/package/pdfmakehttps://www.npmjs.com/package/pdfmake)。具体安装估计大家都能看懂,主要是咱们中国人使用的时候要生成中文的pdf,然而这个库里边集成的字体是英文常见的Roboto字体,这就导致生成pdf文件是乱码的。接下来就主要围绕解决乱码问题进行流程梳理。
首先,我们既然要生成中文,那就得有一个中文字体(比如我项目里的‘微软雅黑.ttf’),网络上搜下载好自己要生成的pdf字体。
其次,把下载好的字体,打包成js库能够使用的js文件。这一步要使用到pdfmake-master的源代码(https://github.com/bpampuch/pdfmake),下载好这个工程执行以下操作:
- 进入工程的根目录,安装gulp,使用命令为 npm install gulp --save-dev
- 安装pdfmake的依赖包,指令 npm install
- 把下载好的字体文件放在工程里的 examples/fonts 路径下,因为中文字体包比较大,不建议打包多个字体包,然后执行指令 gulp buildFonts
- 第三部走完之后,在build 文件中找到vfs_fonts.js文件,然后用这个文件替换你的项目里引入的pdfmake依赖包下的同名文件。
- 替换好了之后就是一些官网上也能够看到的操作,下边是我项目的测试代码:
pdfMake.vfs = pdfFonts.pdfMake.vfs;
this.setState({ temp:ClassicWay.get_pdfmake_options(this.state.text) },()=>{ let text = { content:this.state.temp, defaultStyle: { font: '微软雅黑' } }; pdfMake.fonts = { 微软雅黑: { normal: '微软雅黑.ttf', bold: '微软雅黑.ttf', italics: '微软雅黑.ttf', bolditalics: '微软雅黑.ttf', } };
//生成的pdf会下载到本地 pdfMake.createPdf(text).download(); })
text.content的数据类型是个数组,具体怎么布置类型,官网上会有。
我是测试完几个之后,选择这个的,如果谁有更好的生成方法,还请赐教啊。要是哪个同志按照流程也没有跑通这个,可以留言,咱们互相学习。
用pdfmake生成pdf中文文档相关推荐
- java 读取pdf乱码_java itextpdf 5.5.6读取pdf中文文档乱码怎么解决
Itext中文处理: 在Itext中的中文处理随着Itext的版本变化,采取的方法也在变化. 首先我来演示一下利用Itext-2.1.3.jar与iTextAsian.jar两个包来解决中文问题. 附 ...
- springboot 中文文档_比Swagger还好用的自动生成接口文档工具
JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...
- python3.8图片_python3.8.3官方中文文档[PDF][CHM][31.14MB]
内容简介 Python 3.8.3 文档是一套整理的Python 3.8.3 的官方中文文档,包含chm和官方pdf完整版,需要的朋友可下载试试! Python 是一种易于学习又功能强大的编程语言.它 ...
- springboot 中文文档_还在用 Swagger生成接口文档?我推荐你试试它
JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...
- 使用JavaScript生成二维码教程-附qrcodejs中文文档
使用javascript生成二维码 依赖jquery 需要使用到的库 https://github.com/davidshimj... DIV <div id="qrcode" ...
- beego 例子_Beego中文文档PDF
[实例简介] Beego中文文档PDF版,便于平板上阅读查看....... 快速入门」 快速入门 安装 brego包含一些示例应用程序以帮您学习并使用 brego应用框架 您需要安装Go1.1+以确保 ...
- oracle中文文档_如果你还在用Swagger(丝袜哥)生成接口文档,那就真有点老“土”了!...
JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...
- 用Sandcastle生成CHM1.x中文文档
前一篇文章<用Sandcastle生成CHM1.x中文文档>发布了之后,有些朋友希望获得我翻译的中文模版. 现共享如下: /Files/didasoft/Docs.zip 先说明一下,这些 ...
- 【Scikit-Learn 中文文档】支持向量机 - 监督学习 - 用户指南 | ApacheCN
中文文档: http://sklearn.apachecn.org/cn/0.19.0/modules/svm.html 英文文档: http://sklearn.apachecn.org/en/0. ...
最新文章
- 区块链拓展-信任颠覆
- 高响应比优先算法代码_以梦为码丨让每一行代码都充满温情
- python文件不存在时创建文件_python-创建一个文件(如果不存在)
- 2019_BUAAOO_第一单元总结
- 2022速卖通328大促活动招商规则出炉啦,热销高潜产品抢先看
- java游戏开发基础Swing之JRadioButton
- (转)Oracle中实现行列转换的方法
- 实现线程安全的单例模式的四种方式
- Linux的进程优先级NI和PR
- Android Studio3.5 JNIDemo实现步骤详解
- MSN的头像存放路径
- [转] 宝宝出生第一年妈妈最应关心的问题
- 一台电脑登陆两个微信账号
- golang中的包管理工具——govendor和godep简单学习
- JGit操作之2.0版
- 邂逅Flutter开发
- Zotero简易使用教程
- VScode快捷键(win + mac)
- csv加header python_用python处理csv格式文件
- Web of Science爬虫实战(Post方法)