前端生成pdf文件之pdfmake.js

时间:2024-03-06 17:22:02

前端生成pdf文件之pdfmake.js

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

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

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