-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathpageReference.js
143 lines (138 loc) · 7.33 KB
/
pageReference.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
var pdfmake = require('../js/index'); // only during development, otherwise use the following line
//var pdfmake = require('pdfmake');
var Roboto = require('../fonts/Roboto');
pdfmake.addFonts(Roboto);
var docDefinition = {
content: [
{
text: 'This is a page reference example. Page number of text element marked id property will be located in pageReference element. See below.\n\n'
},
{
table: {
body: [
[{ text: 'page #', bold: true }, { text: 'title', bold: true }],
[{ pageReference: 'header1', alignment: 'right' }, 'Header one'],
[{ pageReference: 'subheader1', alignment: 'right' }, 'Subheader one'],
[{ pageReference: 'subheader2', alignment: 'right' }, 'Subheader two'],
[{ pageReference: 'subheader3', alignment: 'right' }, 'Subheader three']
]
}
},
{
text: '\nAnd text can be referenced by textReference:\n'
},
{
table: {
body: [
[{ text: 'page #', bold: true }, { text: 'title', bold: true }],
[{ pageReference: 'header1', alignment: 'right' }, { textReference: 'header1' }],
[{ pageReference: 'subheader1', alignment: 'right' }, { textReference: 'subheader1' }],
[{ pageReference: 'subheader2', alignment: 'right' }, { textReference: 'subheader2' }],
[{ pageReference: 'subheader3', alignment: 'right' }, { textReference: 'subheader3' }]
]
}
},
{
text: '\nAnd all can be in inline texts:\n'
},
{
text: [
'Chapter "',
{ textReference: 'header1' },
'" is on page number ',
{ pageReference: 'header1' }
]
},
{
text: [
'Chapter "',
{ textReference: 'subheader1' },
'" is on page number ',
{ pageReference: 'subheader1' }
]
},
{
text: [
'Chapter "',
{ textReference: 'subheader2' },
'" is on page number ',
{ pageReference: 'subheader2' }
]
},
{
text: [
'Chapter "',
{ textReference: 'subheader3' },
'" is on page number ',
{ pageReference: 'subheader3' }
]
},
{
text: 'This is a header, using header style',
style: 'header',
id: 'header1',
pageBreak: 'before'
},
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam.\n\n',
{
text: 'Subheader 1 - using subheader style',
style: 'subheader',
id: 'subheader1',
pageBreak: 'before'
},
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam posset, eveniunt specie deorsus efficiat sermone instituendarum fuisse veniat, eademque mutat debeo. Delectet plerique protervi diogenem dixerit logikh levius probabo adipiscuntur afficitur, factis magistra inprobitatem aliquo andriam obiecta, religionis, imitarentur studiis quam, clamat intereant vulgo admonitionem operis iudex stabilitas vacillare scriptum nixam, reperiri inveniri maestitiam istius eaque dissentias idcirco gravis, refert suscipiet recte sapiens oportet ipsam terentianus, perpauca sedatio aliena video.',
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam posset, eveniunt specie deorsus efficiat sermone instituendarum fuisse veniat, eademque mutat debeo. Delectet plerique protervi diogenem dixerit logikh levius probabo adipiscuntur afficitur, factis magistra inprobitatem aliquo andriam obiecta, religionis, imitarentur studiis quam, clamat intereant vulgo admonitionem operis iudex stabilitas vacillare scriptum nixam, reperiri inveniri maestitiam istius eaque dissentias idcirco gravis, refert suscipiet recte sapiens oportet ipsam terentianus, perpauca sedatio aliena video.',
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam posset, eveniunt specie deorsus efficiat sermone instituendarum fuisse veniat, eademque mutat debeo. Delectet plerique protervi diogenem dixerit logikh levius probabo adipiscuntur afficitur, factis magistra inprobitatem aliquo andriam obiecta, religionis, imitarentur studiis quam, clamat intereant vulgo admonitionem operis iudex stabilitas vacillare scriptum nixam, reperiri inveniri maestitiam istius eaque dissentias idcirco gravis, refert suscipiet recte sapiens oportet ipsam terentianus, perpauca sedatio aliena video.\n\n',
{
text: 'Subheader 2 - using subheader style',
style: 'subheader',
id: 'subheader2',
pageBreak: 'before'
},
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam posset, eveniunt specie deorsus efficiat sermone instituendarum fuisse veniat, eademque mutat debeo. Delectet plerique protervi diogenem dixerit logikh levius probabo adipiscuntur afficitur, factis magistra inprobitatem aliquo andriam obiecta, religionis, imitarentur studiis quam, clamat intereant vulgo admonitionem operis iudex stabilitas vacillare scriptum nixam, reperiri inveniri maestitiam istius eaque dissentias idcirco gravis, refert suscipiet recte sapiens oportet ipsam terentianus, perpauca sedatio aliena video.',
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam posset, eveniunt specie deorsus efficiat sermone instituendarum fuisse veniat, eademque mutat debeo. Delectet plerique protervi diogenem dixerit logikh levius probabo adipiscuntur afficitur, factis magistra inprobitatem aliquo andriam obiecta, religionis, imitarentur studiis quam, clamat intereant vulgo admonitionem operis iudex stabilitas vacillare scriptum nixam, reperiri inveniri maestitiam istius eaque dissentias idcirco gravis, refert suscipiet recte sapiens oportet ipsam terentianus, perpauca sedatio aliena video.\n\n',
{
text: 'It is possible to apply multiple styles, by passing an array. This paragraph uses two styles: quote and small. When multiple styles are provided, they are evaluated in the specified order which is important in case they define the same properties',
style: ['quote', 'small']
},
{
text: [
{
text: 'Subheader 3 - using inline text',
style: 'subheader',
id: 'subheader3',
tocItem: true
},
{
text: '; and this text not be displayed in ToC',
italics: true
}
],
pageBreak: 'before'
},
'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Confectum ponit legam, perferendis nomine miserum, animi. Moveat nesciunt triari naturam posset, eveniunt specie deorsus efficiat sermone instituendarum fuisse veniat, eademque mutat debeo. Delectet plerique protervi diogenem dixerit logikh levius probabo adipiscuntur afficitur, factis magistra inprobitatem aliquo andriam obiecta, religionis, imitarentur studiis quam, clamat intereant vulgo admonitionem operis iudex stabilitas vacillare scriptum nixam, reperiri inveniri maestitiam istius eaque dissentias idcirco gravis, refert suscipiet recte sapiens oportet ipsam terentianus, perpauca sedatio aliena video.'
],
styles: {
header: {
fontSize: 18,
bold: true
},
subheader: {
fontSize: 15,
bold: true
},
quote: {
italics: true
},
small: {
fontSize: 8
}
}
};
var now = new Date();
var pdf = pdfmake.createPdf(docDefinition);
pdf.write('pdfs/pageReference.pdf').then(() => {
console.log(new Date() - now);
}, err => {
console.error(err);
});