0.3.20 • Published 5 years ago

gm-pdfmake v0.3.20

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

pdfmake

Client/server side PDF printing in pure JavaScript

Check out the playground and examples.

使用中文

pdfmake原文档有说明如何使用自定义字体Custom Fonts client side

通过看文档和gulpfile.js之后发现,主要3个点实现自定义字体: 1. 把字体文件base64之后得到的字符串赋值给pdfMake.vfs

pdfMake.vfs = {
  "fontFile.ttf": "xxxxx",
  "fontFile2.ttf": "xxxxx",
  "fontFile3.ttf": "xxxxx",
  "fontFile4.ttf": "xxxxx"
}
  1. pdfMake.fonts中声明要用到的字体;
pdfMake.fonts = {
   yourFontName: {
     normal: 'fontFile.ttf',
     bold: 'fontFile2.ttf',
     italics: 'fontFile3.ttf',
     bolditalics: 'fontFile4.ttf'
   }
}
  1. 在PDF文档结构中指定使用的字体名称
var docDefinition = {
  content: (...),
  defaultStyle: {
    font: 'yourFontName'
  }
}

优化

由于字体文件太大,电脑上copy过来的字体大小在10~20M,不适合直接拿来用。这里我们在2个方向做了优化。 1. 精减字体,提取7000常用汉字; 使用font-spider对字体做精简,具体可参考font-min-cut 2. 分切base64之后的字符串,并行加载,然后在客户端拼接; 在gulpfile.json中,我添加了splitFontstask,gulp splitFonts之后会在build/splits目录下生成分切后的js文件。

Note

  1. 由于font-spider存在无法提取空格的bug,所以需要使用fontcreator进行字体编辑,添加空格,only windows版本。
  2. ./examples/fonts中的regular.ttfbold.ttf已经添加了空格,但是在观麦的配送单模块中,时常会出现某些客户的sku名称存在生僻字不在我们的7000常用字当中,这时需要我们提取这些生僻字,然后通过fontcreator软件把提取出来的生僻字添加到regular.ttfbold.ttf中,然后重新gulp splitFonts
0.3.20

5 years ago

0.3.19

5 years ago

0.3.18

5 years ago

0.3.17

6 years ago

0.3.16

6 years ago

0.3.15

6 years ago

0.3.14

6 years ago

0.3.13

6 years ago

0.3.12

6 years ago

0.3.11

6 years ago

0.3.10

6 years ago

0.3.9

6 years ago

0.3.8

6 years ago

0.3.7

6 years ago

0.3.6

6 years ago

0.3.5

6 years ago

0.3.4

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.17

6 years ago

0.2.16

6 years ago

0.2.14

6 years ago

0.2.10

6 years ago

0.2.8

6 years ago

0.2.7

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago