@syncfusion/ej2-pdf-export 19.3.43 → 19.3.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +167 -0
  3. package/README.md +1 -10
  4. package/dist/ej2-pdf-export.umd.min.js +1 -1
  5. package/dist/ej2-pdf-export.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-pdf-export.es2015.js +1 -2
  7. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  8. package/dist/es6/ej2-pdf-export.es5.js +1 -2
  9. package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
  10. package/dist/global/ej2-pdf-export.min.js +1 -1
  11. package/dist/global/ej2-pdf-export.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/license +3 -0
  14. package/package.json +15 -7
  15. package/src/implementation/pages/pdf-section.d.ts +0 -1
  16. package/src/implementation/pages/pdf-section.js +0 -1
  17. package/src/implementation/structured-elements/grid/pdf-grid-cell.js +1 -1
  18. package/dist/ts/implementation/actions/action.ts +0 -76
  19. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  20. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  21. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  22. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  23. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  24. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  25. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  26. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  27. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  28. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  29. package/dist/ts/implementation/collections/utils.ts +0 -38
  30. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  31. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  32. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  33. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  34. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  35. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  36. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  37. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  38. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  39. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  40. package/dist/ts/implementation/document/pdf-catalog.ts +0 -52
  41. package/dist/ts/implementation/document/pdf-document-base.ts +0 -166
  42. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  43. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  44. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  45. package/dist/ts/implementation/general/enum.ts +0 -21
  46. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  47. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -62
  48. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  49. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  50. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  51. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  52. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  53. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  54. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  55. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  56. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  57. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  58. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  59. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  60. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  61. package/dist/ts/implementation/graphics/constants.ts +0 -31
  62. package/dist/ts/implementation/graphics/enum.ts +0 -413
  63. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  64. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  65. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  66. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  67. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  68. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  69. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  70. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  71. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  72. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  73. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  74. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  75. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  76. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  77. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  78. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  79. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  80. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  81. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  82. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  83. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  84. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  85. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  86. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  87. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  88. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  89. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  90. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  91. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  92. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  93. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  94. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  95. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  96. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  97. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  98. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  99. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  100. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  101. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  102. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  103. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  104. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  105. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  106. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  107. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  108. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  109. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  110. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -437
  111. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  112. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  113. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  114. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2424
  115. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  116. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  117. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  118. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  119. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  120. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  121. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  122. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  123. package/dist/ts/implementation/input-output/enum.ts +0 -16
  124. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  125. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -515
  126. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  127. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  128. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  129. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  130. package/dist/ts/implementation/pages/enum.ts +0 -201
  131. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  132. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  133. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  134. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  135. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  136. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  137. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  138. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -659
  139. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  140. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  141. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  142. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  143. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  144. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  145. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  146. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  147. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  148. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  149. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  150. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -336
  151. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  152. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -1998
  153. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1189
  154. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  155. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -468
  156. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -839
  157. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  158. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  159. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  160. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  161. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  162. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  163. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  164. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  165. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  166. package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
@@ -1,659 +0,0 @@
1
- /**
2
- * PdfPageTemplateElement.ts class for EJ2-Pdf
3
- */
4
- import { PdfDockStyle, PdfAlignmentStyle, TemplateType } from './enum';
5
- import { PointF, SizeF } from './../drawing/pdf-drawing';
6
- import { PdfGraphics } from './../graphics/pdf-graphics';
7
- import { PdfTemplate } from './../graphics/figures/pdf-template';
8
- import { PdfPageLayer } from './pdf-page-layer';
9
- import { PdfPage } from './pdf-page';
10
- import { PdfDocument } from './../document/pdf-document';
11
- import { RectangleF } from './../drawing/pdf-drawing';
12
- import { PdfSection } from './pdf-section';
13
- /**
14
- * Describes a `page template` object that can be used as header/footer, watermark or stamp.
15
- */
16
- export class PdfPageTemplateElement {
17
- // Fields
18
- /**
19
- * `Layer type` of the template.
20
- * @private
21
- */
22
- private isForeground : boolean;
23
- /**
24
- * `Docking style`.
25
- * @private
26
- */
27
- private dockStyle : PdfDockStyle;
28
- /**
29
- * `Alignment style`.
30
- * @private
31
- */
32
- private alignmentStyle : PdfAlignmentStyle;
33
- /**
34
- * `PdfTemplate` object.
35
- * @private
36
- */
37
- private pdfTemplate : PdfTemplate;
38
- /**
39
- * Usage `type` of this template.
40
- * @private
41
- */
42
- private templateType : TemplateType;
43
- /**
44
- * `Location` of the template on the page.
45
- * @private
46
- */
47
- private currentLocation : PointF;
48
- // Properties
49
- /**
50
- * Gets or sets the `dock style` of the page template element.
51
- * @private
52
- */
53
- public get dock() : PdfDockStyle {
54
- return this.dockStyle;
55
- }
56
- public set dock(value : PdfDockStyle) {
57
- // if (this.dockStyle !== value && this.Type === TemplateType.None) {
58
- this.dockStyle = value;
59
- // Reset alignment.
60
- this.resetAlignment();
61
- // }
62
- }
63
- /**
64
- * Gets or sets `alignment` of the page template element.
65
- * @private
66
- */
67
- public get alignment() : PdfAlignmentStyle {
68
- return this.alignmentStyle;
69
- }
70
- public set alignment(value : PdfAlignmentStyle) {
71
- // if (this.alignmentStyle !== value) {
72
- this.setAlignment(value);
73
- // }
74
- }
75
- /**
76
- * Indicates whether the page template is located `in front of the page layers or behind of it`.
77
- * @private
78
- */
79
- public get foreground() : boolean {
80
- return this.isForeground;
81
- }
82
- public set foreground(value : boolean) {
83
- // if (this.foreground !== value) {
84
- this.isForeground = value;
85
- // }
86
- }
87
- /**
88
- * Indicates whether the page template is located `behind of the page layers or in front of it`.
89
- * @private
90
- */
91
- public get background() : boolean {
92
- return !this.isForeground;
93
- }
94
- public set background(value : boolean) {
95
- this.isForeground = !value;
96
- }
97
- /**
98
- * Gets or sets `location` of the page template element.
99
- * @private
100
- */
101
- public get location() : PointF {
102
- return this.currentLocation;
103
- }
104
- public set location(value : PointF) {
105
- if (this.type === TemplateType.None) {
106
- this.currentLocation = value;
107
- } else {
108
- //
109
- }
110
- }
111
- /**
112
- * Gets or sets `X` co-ordinate of the template element on the page.
113
- * @private
114
- */
115
- public get x() : number {
116
- let value : number = (typeof this.currentLocation !== 'undefined') ? this.currentLocation.x : 0;
117
- return value;
118
- }
119
- public set x(value : number) {
120
- if (this.type === TemplateType.None) {
121
- this.currentLocation.x = value;
122
- } else {
123
- //
124
- }
125
- }
126
- /**
127
- * Gets or sets `Y` co-ordinate of the template element on the page.
128
- * @private
129
- */
130
- public get y() : number {
131
- let value : number = (typeof this.currentLocation !== 'undefined') ? this.currentLocation.y : 0;
132
- return value;
133
- }
134
- public set y(value : number) {
135
- if (this.type === TemplateType.None) {
136
- this.currentLocation.y = value;
137
- } else {
138
- //
139
- }
140
- }
141
- /**
142
- * Gets or sets `size` of the page template element.
143
- * @private
144
- */
145
- public get size() : SizeF {
146
- return this.template.size;
147
- }
148
- public set size(value : SizeF) {
149
- if (this.type === TemplateType.None) {
150
- this.template.reset(value);
151
- }
152
- }
153
- /**
154
- * Gets or sets `width` of the page template element.
155
- * @private
156
- */
157
- public get width() : number {
158
- return this.template.width;
159
- }
160
- public set width(value : number) {
161
- if (this.template.width !== value && this.type === TemplateType.None) {
162
- let size : SizeF = this.template.size;
163
- size.width = value;
164
- this.template.reset(size);
165
- }
166
- }
167
- /**
168
- * Gets or sets `height` of the page template element.
169
- * @private
170
- */
171
- public get height() : number {
172
- return this.template.height;
173
- }
174
- public set height(value : number) {
175
- if (this.template.height !== value && this.type === TemplateType.None) {
176
- let size : SizeF = this.template.size;
177
- size.height = value;
178
- this.template.reset(size);
179
- }
180
- }
181
- /**
182
- * Gets `graphics` context of the page template element.
183
- * @private
184
- */
185
- public get graphics() : PdfGraphics {
186
- return this.template.graphics;
187
- }
188
- /**
189
- * Gets Pdf `template` object.
190
- * @private
191
- */
192
- public get template() : PdfTemplate {
193
- // if (typeof this.pdfTemplate === 'undefined' || this.pdfTemplate == null) {
194
- // this.pdfTemplate = new PdfTemplate(this.size);
195
- // }
196
- return this.pdfTemplate;
197
- }
198
- /**
199
- * Gets or sets `type` of the usage of this page template.
200
- * @private
201
- */
202
- public get type() : TemplateType {
203
- return this.templateType;
204
- }
205
- public set type(value : TemplateType) {
206
- this.updateDocking(value);
207
- this.templateType = value;
208
- }
209
- /**
210
- * Gets or sets `bounds` of the page template.
211
- * @public
212
- */
213
- public get bounds() : RectangleF {
214
- return new RectangleF(new PointF(this.x, this.y), this.size);
215
- }
216
- public set bounds(value : RectangleF) {
217
- if (this.type === TemplateType.None) {
218
- this.location = new PointF(value.x, value.y);
219
- this.size = new SizeF(value.width, value.height);
220
- }
221
- }
222
-
223
- // constructor
224
- /**
225
- * Creates a new page template.
226
- * @param bounds Bounds of the template.
227
- */
228
- public constructor(bounds : RectangleF)
229
- /**
230
- * Creates a new page template.
231
- * @param bounds Bounds of the template.
232
- * @param page Page of the template.
233
- */
234
- public constructor(bounds : RectangleF, page : PdfPage)
235
- /**
236
- * Creates a new page template.
237
- * @param location Location of the template.
238
- * @param size Size of the template.
239
- */
240
- public constructor(location : PointF, size : SizeF)
241
- /**
242
- * Creates a new page template.
243
- * @param location Location of the template.
244
- * @param size Size of the template.
245
- * @param page Page of the template.
246
- */
247
- public constructor(location : PointF, size : SizeF, page : PdfPage)
248
- /**
249
- * Creates a new page template.
250
- * @param size Size of the template.
251
- */
252
- public constructor(size : SizeF)
253
- /**
254
- * Creates a new page template.
255
- * @param width Width of the template.
256
- * @param height Height of the template.
257
- */
258
- public constructor(width : number, height : number)
259
- /**
260
- * Creates a new page template.
261
- * @param width Width of the template.
262
- * @param height Height of the template.
263
- * @param page The Current Page object.
264
- */
265
- public constructor(width : number, height : number, page : PdfPage)
266
- /**
267
- * Creates a new page template.
268
- * @param x X co-ordinate of the template.
269
- * @param y Y co-ordinate of the template.
270
- * @param width Width of the template.
271
- * @param height Height of the template.
272
- */
273
- public constructor(x : number, y : number, width : number, height : number)
274
- /**
275
- * Creates a new page template.
276
- * @param x X co-ordinate of the template.
277
- * @param y Y co-ordinate of the template.
278
- * @param width Width of the template.
279
- * @param height Height of the template.
280
- * @param page The Current Page object.
281
- */
282
- public constructor(x : number, y : number, width : number, height : number, page : PdfPage)
283
- /* tslint:disable */
284
- public constructor(arg1 : number|PointF|SizeF|RectangleF, arg2 ?: number|SizeF|PdfPage, arg3 ?: number|PdfPage, arg4 ?: number, arg5 ?: PdfPage) {
285
- if (arg1 instanceof RectangleF && typeof arg2 === 'undefined') {
286
- this.InitiateBounds(arg1.x, arg1.y, arg1.width, arg1.height, null);
287
- } else if (arg1 instanceof RectangleF && arg2 instanceof PdfPage && typeof arg3 === 'undefined') {
288
- this.InitiateBounds(arg1.x, arg1.y, arg1.width, arg1.height, arg2);
289
- } else if (arg1 instanceof PointF && arg2 instanceof SizeF && typeof arg3 === 'undefined') {
290
- this.InitiateBounds(arg1.x, arg1.y, arg2.width, arg2.height, null);
291
- } else if (arg1 instanceof PointF && arg2 instanceof SizeF && arg3 instanceof PdfPage && typeof arg4 === 'undefined') {
292
- this.InitiateBounds(arg1.x, arg1.y, arg2.width, arg2.height, arg3);
293
- } else if (arg1 instanceof SizeF && typeof arg2 === 'undefined') {
294
- this.InitiateBounds(0, 0, arg1.width, arg1.height , null);
295
- } else if (typeof arg1 === 'number' && typeof arg2 === 'number' && typeof arg3 === 'undefined') {
296
- this.InitiateBounds(0, 0, arg1, arg2, null);
297
- } else if (typeof arg1 === 'number' && typeof arg2 === 'number' && arg3 instanceof PdfPage && typeof arg4 === 'undefined') {
298
- this.InitiateBounds(0, 0, arg1, arg2, arg3);
299
- } else if (typeof arg1 === 'number' && typeof arg2 === 'number' && typeof arg3 === 'number' && typeof arg4 === 'number' && typeof arg5 === 'undefined') {
300
- this.InitiateBounds(arg1, arg2, arg3, arg4, null);
301
- } else {
302
- this.InitiateBounds(arg1 as number, arg2 as number, arg3 as number, arg4 as number, null);
303
- // this.graphics.colorSpace = this.page.document.colorSpace;
304
- }
305
- /* tslint:enable */
306
- }
307
- /**
308
- * `Initialize Bounds` Initialize the bounds value of the template.
309
- * @private
310
- */
311
- private InitiateBounds(arg1 : number, arg2 : number, arg3 : number, arg4 : number , arg5 : PdfPage) : void {
312
- this.x = arg1 as number;
313
- this.y = arg2 as number;
314
- this.pdfTemplate = new PdfTemplate(arg3 as number, arg4 as number);
315
- // this.graphics.colorSpace = this.page.document.colorSpace;
316
- }
317
- /**
318
- * `Updates Dock` property if template is used as header/footer.
319
- * @private
320
- */
321
- private updateDocking(type : TemplateType) : void {
322
- if (type !== TemplateType.None) {
323
- switch (type) {
324
- case TemplateType.Top:
325
- this.dock = PdfDockStyle.Top;
326
- break;
327
- case TemplateType.Bottom:
328
- this.dock = PdfDockStyle.Bottom;
329
- break;
330
- case TemplateType.Left:
331
- this.dock = PdfDockStyle.Left;
332
- break;
333
- case TemplateType.Right:
334
- this.dock = PdfDockStyle.Right;
335
- break;
336
- }
337
- this.resetAlignment();
338
- }
339
- }
340
- /**
341
- * `Resets alignment` of the template.
342
- * @private
343
- */
344
- private resetAlignment() : void {
345
- this.alignment = PdfAlignmentStyle.None;
346
- }
347
- /**
348
- * `Sets alignment` of the template.
349
- * @private
350
- */
351
- private setAlignment(alignment : PdfAlignmentStyle) : void {
352
- if (this.dock === PdfDockStyle.None) {
353
- this.alignmentStyle = alignment;
354
- } else {
355
- // Template is docked and alignment has been changed.
356
- let canBeSet : boolean = false;
357
- switch (this.dock) {
358
- case PdfDockStyle.Left:
359
- canBeSet = (alignment === PdfAlignmentStyle.TopLeft || alignment === PdfAlignmentStyle.MiddleLeft ||
360
- alignment === PdfAlignmentStyle.BottomLeft || alignment === PdfAlignmentStyle.None);
361
- break;
362
- case PdfDockStyle.Top:
363
- canBeSet = (alignment === PdfAlignmentStyle.TopLeft || alignment === PdfAlignmentStyle.TopCenter ||
364
- alignment === PdfAlignmentStyle.TopRight || alignment === PdfAlignmentStyle.None);
365
- break;
366
- case PdfDockStyle.Right:
367
- canBeSet = (alignment === PdfAlignmentStyle.TopRight || alignment === PdfAlignmentStyle.MiddleRight ||
368
- alignment === PdfAlignmentStyle.BottomRight || alignment === PdfAlignmentStyle.None);
369
- break;
370
- case PdfDockStyle.Bottom:
371
- canBeSet = (alignment === PdfAlignmentStyle.BottomLeft || alignment === PdfAlignmentStyle.BottomCenter
372
- || alignment === PdfAlignmentStyle.BottomRight || alignment === PdfAlignmentStyle.None);
373
- break;
374
- case PdfDockStyle.Fill:
375
- canBeSet = (alignment === PdfAlignmentStyle.MiddleCenter || alignment === PdfAlignmentStyle.None);
376
- break;
377
- }
378
- if (canBeSet) {
379
- this.alignmentStyle = alignment;
380
- }
381
- }
382
- }
383
- /**
384
- * Draws the template.
385
- * @private
386
- */
387
- public draw(layer : PdfPageLayer, document : PdfDocument) : void {
388
- let page : PdfPage = layer.page as PdfPage;
389
- let bounds : RectangleF = this.calculateBounds(page, document);
390
- if (bounds.x === -0) {
391
- bounds.x = 0;
392
- }
393
- layer.graphics.drawPdfTemplate(this.template, new PointF(bounds.x, bounds.y), new SizeF(bounds.width, bounds.height));
394
- }
395
- /**
396
- * Calculates bounds of the page template.
397
- * @private
398
- */
399
- private calculateBounds(page : PdfPage, document : PdfDocument) : RectangleF {
400
- let result : RectangleF = this.bounds;
401
- if (this.alignmentStyle !== PdfAlignmentStyle.None) {
402
- result = this.getAlignmentBounds(page, document);
403
- } else if (this.dockStyle !== PdfDockStyle.None) {
404
- result = this.getDockBounds(page, document);
405
- }
406
- return result;
407
- }
408
- /**
409
- * Calculates bounds according to the alignment.
410
- * @private
411
- */
412
- private getAlignmentBounds(page : PdfPage, document : PdfDocument) : RectangleF {
413
- let result : RectangleF = this.bounds;
414
- if (this.type === TemplateType.None) {
415
- result = this.getSimpleAlignmentBounds(page, document);
416
- } else {
417
- result = this.getTemplateAlignmentBounds(page, document);
418
- }
419
- return result;
420
- }
421
- /**
422
- * Calculates bounds according to the alignment.
423
- * @private
424
- */
425
- private getSimpleAlignmentBounds(page : PdfPage, document : PdfDocument) : RectangleF {
426
- let bounds : RectangleF = this.bounds;
427
- let pdfSection : PdfSection = page.section;
428
- let actualBounds : RectangleF = pdfSection.getActualBounds(document, page, false);
429
- let x : number = this.x as number;
430
- let y : number = this.y as number;
431
- switch (this.alignmentStyle) {
432
- case PdfAlignmentStyle.TopLeft:
433
- x = 0;
434
- y = 0;
435
- break;
436
- case PdfAlignmentStyle.TopCenter:
437
- x = (actualBounds.width - this.width) / 2;
438
- y = 0;
439
- break;
440
- case PdfAlignmentStyle.TopRight:
441
- x = actualBounds.width - this.width;
442
- y = 0;
443
- break;
444
- case PdfAlignmentStyle.MiddleLeft:
445
- x = 0;
446
- y = (actualBounds.height - this.height) / 2;
447
- break;
448
- case PdfAlignmentStyle.MiddleCenter:
449
- x = (actualBounds.width - this.width) / 2;
450
- y = (actualBounds.height - this.height) / 2;
451
- break;
452
- case PdfAlignmentStyle.MiddleRight:
453
- x = actualBounds.width - this.width;
454
- y = (actualBounds.height - this.height) / 2;
455
- break;
456
- case PdfAlignmentStyle.BottomLeft:
457
- x = 0;
458
- y = actualBounds.height - this.height;
459
- break;
460
- case PdfAlignmentStyle.BottomCenter:
461
- x = (actualBounds.width - this.width) / 2;
462
- y = actualBounds.height - this.height;
463
- break;
464
- case PdfAlignmentStyle.BottomRight:
465
- x = actualBounds.width - this.width;
466
- y = actualBounds.height - this.height;
467
- break;
468
- }
469
- bounds.x = x;
470
- bounds.y = y;
471
- return bounds;
472
- }
473
- /**
474
- * Calculates bounds according to the alignment.
475
- * @private
476
- */
477
- private getTemplateAlignmentBounds(page : PdfPage, document : PdfDocument) : RectangleF {
478
- let result : RectangleF = this.bounds;
479
- let section : PdfSection = page.section;
480
- let actualBounds : RectangleF = section.getActualBounds(document, page, false);
481
- let x : number = this.x;
482
- let y : number = this.y;
483
- switch (this.alignmentStyle) {
484
- case PdfAlignmentStyle.TopLeft:
485
- if (this.type === TemplateType.Left) {
486
- x = -actualBounds.x;
487
- y = 0;
488
- } else if (this.type === TemplateType.Top) {
489
- x = -actualBounds.x;
490
- y = -actualBounds.y;
491
- }
492
- break;
493
- case PdfAlignmentStyle.TopCenter:
494
- x = (actualBounds.width - this.width) / 2;
495
- y = -actualBounds.y;
496
- break;
497
- case PdfAlignmentStyle.TopRight:
498
- if (this.type === TemplateType.Right) {
499
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
500
- y = 0;
501
- } else if (this.type === TemplateType.Top) {
502
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
503
- y = -actualBounds.y;
504
- }
505
- break;
506
- case PdfAlignmentStyle.MiddleLeft:
507
- x = -actualBounds.x;
508
- y = (actualBounds.height - this.height) / 2;
509
- break;
510
- case PdfAlignmentStyle.MiddleCenter:
511
- x = (actualBounds.width - this.width) / 2;
512
- y = (actualBounds.height - this.height) / 2;
513
- break;
514
- case PdfAlignmentStyle.MiddleRight:
515
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
516
- y = (actualBounds.height - this.height) / 2;
517
- break;
518
- case PdfAlignmentStyle.BottomLeft:
519
- if (this.type === TemplateType.Left) {
520
- x = -actualBounds.x;
521
- y = actualBounds.height - this.height;
522
- } else if (this.type === TemplateType.Bottom) {
523
- x = -actualBounds.x;
524
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
525
- }
526
- break;
527
- case PdfAlignmentStyle.BottomCenter:
528
- x = (actualBounds.width - this.width) / 2;
529
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
530
- break;
531
- case PdfAlignmentStyle.BottomRight:
532
- if (this.type === TemplateType.Right) {
533
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
534
- y = actualBounds.height - this.height;
535
- } else if (this.type === TemplateType.Bottom) {
536
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
537
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
538
- }
539
- break;
540
- }
541
- result.x = x;
542
- result.y = y;
543
- return result;
544
- }
545
- /**
546
- * Calculates bounds according to the docking.
547
- * @private
548
- */
549
- private getDockBounds(page : PdfPage, document : PdfDocument) : RectangleF {
550
- let result : RectangleF = this.bounds;
551
- if (this.type === TemplateType.None) {
552
- result = this.getSimpleDockBounds(page, document);
553
- } else {
554
- result = this.getTemplateDockBounds(page, document);
555
- }
556
- return result;
557
- }
558
- /**
559
- * Calculates bounds according to the docking.
560
- * @private
561
- */
562
- private getSimpleDockBounds(page : PdfPage, document : PdfDocument) : RectangleF {
563
- let result : RectangleF = this.bounds;
564
- let section : PdfSection = page.section;
565
- let actualBounds : RectangleF = section.getActualBounds(document, page, false);
566
- let x : number = this.x;
567
- let y : number = this.y;
568
- let width : number = this.width;
569
- let height : number = this.height;
570
- switch (this.dockStyle) {
571
- case PdfDockStyle.Left:
572
- x = 0;
573
- y = 0;
574
- width = this.width;
575
- height = actualBounds.height;
576
- break;
577
- case PdfDockStyle.Top:
578
- x = 0;
579
- y = 0;
580
- width = actualBounds.width;
581
- height = this.height;
582
- break;
583
- case PdfDockStyle.Right:
584
- x = actualBounds.width - this.width;
585
- y = 0;
586
- width = this.width;
587
- height = actualBounds.height;
588
- break;
589
- case PdfDockStyle.Bottom:
590
- x = 0;
591
- y = actualBounds.height - this.height;
592
- width = actualBounds.width;
593
- height = this.height;
594
- break;
595
- case PdfDockStyle.Fill:
596
- x = 0;
597
- x = 0;
598
- width = actualBounds.width;
599
- height = actualBounds.height;
600
- break;
601
- }
602
- result = new RectangleF(x, y, width, height);
603
- return result;
604
- }
605
- /**
606
- * Calculates template bounds basing on docking if template is a page template.
607
- * @private
608
- */
609
- private getTemplateDockBounds(page : PdfPage, document : PdfDocument) : RectangleF {
610
- let result : RectangleF = this.bounds;
611
- let section : PdfSection = page.section;
612
- let actualBounds : RectangleF = section.getActualBounds(document, page, false);
613
- let actualSize : SizeF = section.pageSettings.getActualSize();
614
- let x : number = this.x;
615
- let y : number = this.y;
616
- let width : number = this.width;
617
- let height : number = this.height;
618
- switch (this.dockStyle) {
619
- case PdfDockStyle.Left:
620
- x = -actualBounds.x;
621
- y = 0;
622
- width = this.width;
623
- height = actualBounds.height;
624
- break;
625
- case PdfDockStyle.Top:
626
- x = -actualBounds.x;
627
- y = -actualBounds.y;
628
- width = actualSize.width;
629
- height = this.height;
630
- if (actualBounds.height < 0) {
631
- y = -actualBounds.y + actualSize.height;
632
- }
633
- break;
634
- case PdfDockStyle.Right:
635
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
636
- y = 0;
637
- width = this.width;
638
- height = actualBounds.height;
639
- break;
640
- case PdfDockStyle.Bottom:
641
- x = -actualBounds.x;
642
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
643
- width = actualSize.width;
644
- height = this.height;
645
- if (actualBounds.height < 0) {
646
- y -= actualSize.height;
647
- }
648
- break;
649
- case PdfDockStyle.Fill:
650
- x = 0;
651
- x = 0;
652
- width = actualBounds.width;
653
- height = actualBounds.height;
654
- break;
655
- }
656
- result = new RectangleF(x, y, width, height);
657
- return result;
658
- }
659
- }