转载:点击查看原文

pdfmake.js是一个简单的生成pdf文件的插件。

pdfmake.js     https://files.cnblogs.com/files/s313139232/pdfmake.min.js

代码也很简单:

html文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>my first export PDF</title>
<script src="pdfmake.min.js"></script>
<script src="vfs_fonts.js"></script>
<script>
function down() {
var dd = {
content: [
'中英文测试',
'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines'
],
defaultStyle: {
font: '方正姚体'
}
};
pdfMake.fonts = {
Roboto: {
normal: 'Roboto-Regular.ttf',
bold: 'Roboto-Medium.ttf',
italics: 'Roboto-Italic.ttf',
bolditalics: 'Roboto-Italic.ttf'
},
方正姚体: {
normal: 'FZYTK.TTF',
bold: 'FZYTK.TTF',
italics: 'FZYTK.TTF',
bolditalics: 'FZYTK.TTF',
}
};
pdfMake.createPdf(dd).download();
}
</script>
</head>
<body>
<button onclick="down()">下载</button>
</body>
</html>

代码中会引用两个技术,pdfmake.min.js   vfs_fonts.js

  其中pdfmake.min.js是pdfmake的支持文件,而vfs_fonts.js是字体文件(.ttf)打包成的js文件。

content中pdf的内容拼接:
  内容拼接类似于html+css,但是写法为pdfmake插件自带,可以去pdfmake的github首页介绍中查看。

字体文件(.ttf)打包可以通过pdfmake的github上的源文件进行打包制作。

下面是两种字体的vfs_fonts.js文件:

方正姚体  https://files.cnblogs.com/files/s313139232/方正姚体vfs_fonts.js

Roboto-Itali   https://files.cnblogs.com/files/s313139232/Roboto-Italivfs_fonts.js

注意:中文的字体文件较大,打包出来多数都在10M以上,推荐方正姚体等ttf文件较小的字体进行打包。

打包教程:http://www.cnblogs.com/xrab/p/7210588.html

打包步骤:

1.在https://github.com/bpampuch/pdfmake下载pdfmake的源文件

2.在目录用 npm 安装 gulp

npm install gulp --save-dev

3.安装pdfmake依赖包

npm install

4.在cmd运行打包examples/fonts中的.ttf文件的命令。

gulp buildFonts

如果运行上面的命令后,报 什么  apply 什么的  一个错误, 就 npm i gulp-cli -g  一下 ,应该就好了。

5.然后在 build 文件中可以找到vfs_fonts.js文件。

由于字体打包文件较大,建议examples/fonts中的.ttf文件只放置一个字体文件。

前端生成pdf文件之pdfmake.js的更多相关文章

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

    PDF 简介 PDF 全称Portable Document Format (PDF)(便携文档格式),该格式的显示与操作系统.分辨率.设备等因素没有关系,不论是在Windows,Unix还是在苹果公 ...

  2. 在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all

    在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all 前天来了个新需求, 有一个授权书的文件要点击下载, 需要在前端生成, ...

  3. PDF.Js的使用—javascript中前端显示pdf文件

    PDF.Js的使用—javascript中前端显示pdf文件 写于2018/12/6 起因是一个图片展示页面需要展示pdf格式的文件,所以查了半天决定使用pdf.js,我也不求有多了解它,能实现我想要 ...

  4. 纯前端导出pdf文件

    纯前端js导出pdf,已经用于生产环境. 工具: 1.html2canvas,一种让html转换为图片的工具. 2.pdfmake或者jspdf ,一种生成.编辑pdf,并且导出pdf的工具. pdf ...

  5. Itext生成pdf文件

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  6. 根据PDF模板生成PDF文件(基于iTextSharp)

    根据PDF模板生成PDF文件,这里主要借助iTextSharp工具来完成.场景是这样的,假如要做一个电子协议,用过通过在线填写表单数据,然后系统根据用户填写的数据,生成电子档的协议.原理很简单,但是每 ...

  7. 在C#.NET中,如何生成PDF文件?主要有以下几个途径

    1.使用.NET文件流技术:若通过.NET的文件流技术生成PDF文件,必须对PDF文件的语法很清楚,例如BT表示实体内容开始:ET表示实体内容结束:TD表示换行等等.我们可以从Adobe的官方网站上下 ...

  8. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  9. ThinkPHP3.2.3扩展之生成PDF文件(MPDF)

    目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendo ...

随机推荐

  1. Vuejs---《Vue.js + Node.js-构建音乐播放器新玩法-video》

    官方文档:http://vuejs.org/v2/guide/syntax.html 中文文档: https://cn.vuejs.org/v2/guide/syntax.html https://g ...

  2. 控件屏蔽Ctrl+C 复制

    procedure ****.***KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin ) )) and (ssCtr ...

  3. MySql 在cmd下的学习笔记 —— 有关游标的操作(cursor)

    ---恢复内容开始--- cursor 指在1条sql,对应N条资源,取出资源的接口/句柄,就是游标 沿着游标,可以一次取出一行 对于游标,必须要先声明一下 fetch 会读取每一条记录,当没有时,会 ...

  4. 20165237 2017-2018-2 《Java程序设计》第6周学习总结

    20165237 2017-2018-2 <Java程序设计>第6周学习总结 教材学习内容总结 1.String类的常用方法: public int length() public boo ...

  5. QML 从入门到放弃

    发现了一个问题: QQuickView only supports loading of root objects that derive from QQuickItem. If your examp ...

  6. python获取windows信息

    转载自http://www.blog.pythonlibrary.org/2010/02/06/more-windows-system-information-with-python/ How to ...

  7. 出现警告“user1 不在 sudoers 文件中。此事将被报告。”

    linux中不是每个用户都有sudo权限. 在/etc/下有个文件sudoers 由此文件可知只有用户为sudo这个组的成员之后才能执行sudo命令 此时,我们查看用户user1的属性: 由此看出us ...

  8. Windows下文件夹扩展名

    回收站.{645ff040-5081-101b-9f08-00aa002f954e} 拨号网络.{992CFFA0-F557-101A-88EC-00DD010CCC48} 打印机.{2227a280 ...

  9. Linux命令之top、ulimit、free

    1.[ulimit命令] ulimit命令用来限制系统用户对shell资源的访问. 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时 ...

  10. [转]PhpStorm快捷键大全

    1 前言 PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能.Phpstro ...