@syncfusion/ej2-pdf-export 24.1.41 → 24.2.3

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 (164) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/ej2-pdf-export.min.js +2 -2
  3. package/dist/ej2-pdf-export.umd.min.js +2 -2
  4. package/dist/ej2-pdf-export.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-pdf-export.es2015.js +157 -28
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +157 -28
  8. package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
  9. package/dist/global/ej2-pdf-export.min.js +2 -2
  10. package/dist/global/ej2-pdf-export.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +6 -6
  13. package/src/implementation/graphics/pdf-graphics.d.ts +35 -0
  14. package/src/implementation/graphics/pdf-graphics.js +157 -29
  15. package/dist/ts/implementation/actions/action.ts +0 -76
  16. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  17. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  18. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  19. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  20. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  21. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  22. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  23. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  24. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  25. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  26. package/dist/ts/implementation/collections/utils.ts +0 -38
  27. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  28. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  29. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  30. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  31. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  32. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  33. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  34. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  35. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  36. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  37. package/dist/ts/implementation/document/pdf-catalog.ts +0 -65
  38. package/dist/ts/implementation/document/pdf-document-base.ts +0 -180
  39. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  40. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  41. package/dist/ts/implementation/document/pdf-viewer-preferences.ts +0 -578
  42. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  43. package/dist/ts/implementation/general/enum.ts +0 -21
  44. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  45. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -63
  46. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  47. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  48. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  49. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  50. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  51. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  52. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  53. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  54. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  55. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  56. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  57. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  58. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  59. package/dist/ts/implementation/graphics/constants.ts +0 -31
  60. package/dist/ts/implementation/graphics/enum.ts +0 -413
  61. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  62. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  63. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  64. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  65. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  66. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  67. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  68. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  69. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  70. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  71. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  72. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  73. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  74. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  75. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  76. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  77. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  78. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  79. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  80. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  81. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  82. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  83. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  84. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  85. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  86. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  87. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  88. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  89. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  90. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  91. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  92. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  93. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  94. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  95. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  96. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  97. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  98. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  99. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  100. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  101. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  102. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  103. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  104. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  105. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  106. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  107. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  108. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -439
  109. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  110. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  111. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  112. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2429
  113. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  114. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  115. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  116. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  117. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  118. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  119. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  120. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  121. package/dist/ts/implementation/input-output/enum.ts +0 -16
  122. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  123. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -571
  124. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  125. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  126. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  127. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  128. package/dist/ts/implementation/pages/enum.ts +0 -201
  129. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  130. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  131. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  132. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  133. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  134. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  135. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  136. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -663
  137. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  138. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  139. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  140. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  141. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  142. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  143. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  144. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  145. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  146. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  147. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  148. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -306
  149. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  150. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
  151. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1193
  152. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  153. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
  154. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
  155. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  156. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  157. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  158. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  159. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  160. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  161. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  162. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  163. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  164. package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
@@ -1,663 +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
- layer.graphics.drawPdfTemplate(this.template, new PointF(bounds.x, bounds.y), new SizeF(bounds.width, bounds.height));
391
- }
392
- /**
393
- * Calculates bounds of the page template.
394
- * @private
395
- */
396
- private calculateBounds(page : PdfPage, document : PdfDocument) : RectangleF {
397
- let result : RectangleF = this.bounds;
398
- if (this.alignmentStyle !== PdfAlignmentStyle.None) {
399
- result = this.getAlignmentBounds(page, document);
400
- } else if (this.dockStyle !== PdfDockStyle.None) {
401
- result = this.getDockBounds(page, document);
402
- }
403
- return result;
404
- }
405
- /**
406
- * Calculates bounds according to the alignment.
407
- * @private
408
- */
409
- private getAlignmentBounds(page : PdfPage, document : PdfDocument) : RectangleF {
410
- let result : RectangleF = this.bounds;
411
- if (this.type === TemplateType.None) {
412
- result = this.getSimpleAlignmentBounds(page, document);
413
- } else {
414
- result = this.getTemplateAlignmentBounds(page, document);
415
- }
416
- return result;
417
- }
418
- /**
419
- * Calculates bounds according to the alignment.
420
- * @private
421
- */
422
- private getSimpleAlignmentBounds(page : PdfPage, document : PdfDocument) : RectangleF {
423
- let bounds : RectangleF = this.bounds;
424
- let pdfSection : PdfSection = page.section;
425
- let actualBounds : RectangleF = pdfSection.getActualBounds(document, page, false);
426
- let x : number = this.x as number;
427
- let y : number = this.y as number;
428
- switch (this.alignmentStyle) {
429
- case PdfAlignmentStyle.TopLeft:
430
- x = 0;
431
- y = 0;
432
- break;
433
- case PdfAlignmentStyle.TopCenter:
434
- x = (actualBounds.width - this.width) / 2;
435
- y = 0;
436
- break;
437
- case PdfAlignmentStyle.TopRight:
438
- x = actualBounds.width - this.width;
439
- y = 0;
440
- break;
441
- case PdfAlignmentStyle.MiddleLeft:
442
- x = 0;
443
- y = (actualBounds.height - this.height) / 2;
444
- break;
445
- case PdfAlignmentStyle.MiddleCenter:
446
- x = (actualBounds.width - this.width) / 2;
447
- y = (actualBounds.height - this.height) / 2;
448
- break;
449
- case PdfAlignmentStyle.MiddleRight:
450
- x = actualBounds.width - this.width;
451
- y = (actualBounds.height - this.height) / 2;
452
- break;
453
- case PdfAlignmentStyle.BottomLeft:
454
- x = 0;
455
- y = actualBounds.height - this.height;
456
- break;
457
- case PdfAlignmentStyle.BottomCenter:
458
- x = (actualBounds.width - this.width) / 2;
459
- y = actualBounds.height - this.height;
460
- break;
461
- case PdfAlignmentStyle.BottomRight:
462
- x = actualBounds.width - this.width;
463
- y = actualBounds.height - this.height;
464
- break;
465
- }
466
- bounds.x = x;
467
- bounds.y = y;
468
- return bounds;
469
- }
470
- /**
471
- * Calculates bounds according to the alignment.
472
- * @private
473
- */
474
- private getTemplateAlignmentBounds(page : PdfPage, document : PdfDocument) : RectangleF {
475
- let result : RectangleF = this.bounds;
476
- let section : PdfSection = page.section;
477
- let actualBounds : RectangleF = section.getActualBounds(document, page, false);
478
- let x : number = this.x;
479
- let y : number = this.y;
480
- switch (this.alignmentStyle) {
481
- case PdfAlignmentStyle.TopLeft:
482
- if (this.type === TemplateType.Left) {
483
- x = this.convertSign(actualBounds.x);
484
- y = 0;
485
- } else if (this.type === TemplateType.Top) {
486
- x = this.convertSign(actualBounds.x);
487
- y = this.convertSign(actualBounds.y);
488
- }
489
- break;
490
- case PdfAlignmentStyle.TopCenter:
491
- x = (actualBounds.width - this.width) / 2;
492
- y = this.convertSign(actualBounds.y);
493
- break;
494
- case PdfAlignmentStyle.TopRight:
495
- if (this.type === TemplateType.Right) {
496
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
497
- y = 0;
498
- } else if (this.type === TemplateType.Top) {
499
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
500
- y = this.convertSign(actualBounds.y);
501
- }
502
- break;
503
- case PdfAlignmentStyle.MiddleLeft:
504
- x = this.convertSign(actualBounds.x);
505
- y = (actualBounds.height - this.height) / 2;
506
- break;
507
- case PdfAlignmentStyle.MiddleCenter:
508
- x = (actualBounds.width - this.width) / 2;
509
- y = (actualBounds.height - this.height) / 2;
510
- break;
511
- case PdfAlignmentStyle.MiddleRight:
512
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
513
- y = (actualBounds.height - this.height) / 2;
514
- break;
515
- case PdfAlignmentStyle.BottomLeft:
516
- if (this.type === TemplateType.Left) {
517
- x = this.convertSign(actualBounds.x);
518
- y = actualBounds.height - this.height;
519
- } else if (this.type === TemplateType.Bottom) {
520
- x = this.convertSign(actualBounds.x);
521
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
522
- }
523
- break;
524
- case PdfAlignmentStyle.BottomCenter:
525
- x = (actualBounds.width - this.width) / 2;
526
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
527
- break;
528
- case PdfAlignmentStyle.BottomRight:
529
- if (this.type === TemplateType.Right) {
530
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
531
- y = actualBounds.height - this.height;
532
- } else if (this.type === TemplateType.Bottom) {
533
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
534
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
535
- }
536
- break;
537
- }
538
- result.x = x;
539
- result.y = y;
540
- return result;
541
- }
542
- /**
543
- * Calculates bounds according to the docking.
544
- * @private
545
- */
546
- private getDockBounds(page : PdfPage, document : PdfDocument) : RectangleF {
547
- let result : RectangleF = this.bounds;
548
- if (this.type === TemplateType.None) {
549
- result = this.getSimpleDockBounds(page, document);
550
- } else {
551
- result = this.getTemplateDockBounds(page, document);
552
- }
553
- return result;
554
- }
555
- /**
556
- * Calculates bounds according to the docking.
557
- * @private
558
- */
559
- private getSimpleDockBounds(page : PdfPage, document : PdfDocument) : RectangleF {
560
- let result : RectangleF = this.bounds;
561
- let section : PdfSection = page.section;
562
- let actualBounds : RectangleF = section.getActualBounds(document, page, false);
563
- let x : number = this.x;
564
- let y : number = this.y;
565
- let width : number = this.width;
566
- let height : number = this.height;
567
- switch (this.dockStyle) {
568
- case PdfDockStyle.Left:
569
- x = 0;
570
- y = 0;
571
- width = this.width;
572
- height = actualBounds.height;
573
- break;
574
- case PdfDockStyle.Top:
575
- x = 0;
576
- y = 0;
577
- width = actualBounds.width;
578
- height = this.height;
579
- break;
580
- case PdfDockStyle.Right:
581
- x = actualBounds.width - this.width;
582
- y = 0;
583
- width = this.width;
584
- height = actualBounds.height;
585
- break;
586
- case PdfDockStyle.Bottom:
587
- x = 0;
588
- y = actualBounds.height - this.height;
589
- width = actualBounds.width;
590
- height = this.height;
591
- break;
592
- case PdfDockStyle.Fill:
593
- x = 0;
594
- x = 0;
595
- width = actualBounds.width;
596
- height = actualBounds.height;
597
- break;
598
- }
599
- result = new RectangleF(x, y, width, height);
600
- return result;
601
- }
602
- /**
603
- * Calculates template bounds basing on docking if template is a page template.
604
- * @private
605
- */
606
- private getTemplateDockBounds(page : PdfPage, document : PdfDocument) : RectangleF {
607
- let result : RectangleF = this.bounds;
608
- let section : PdfSection = page.section;
609
- let actualBounds : RectangleF = section.getActualBounds(document, page, false);
610
- let actualSize : SizeF = section.pageSettings.getActualSize();
611
- let x : number = this.x;
612
- let y : number = this.y;
613
- let width : number = this.width;
614
- let height : number = this.height;
615
- switch (this.dockStyle) {
616
- case PdfDockStyle.Left:
617
- x = this.convertSign(actualBounds.x);
618
- y = 0;
619
- width = this.width;
620
- height = actualBounds.height;
621
- break;
622
- case PdfDockStyle.Top:
623
- x = this.convertSign(actualBounds.x);
624
- y = this.convertSign(actualBounds.y);
625
- width = actualSize.width;
626
- height = this.height;
627
- if (actualBounds.height < 0) {
628
- y = actualSize.height - actualBounds.y;
629
- }
630
- break;
631
- case PdfDockStyle.Right:
632
- x = actualBounds.width + section.getRightIndentWidth(document, page, false) - this.width;
633
- y = 0;
634
- width = this.width;
635
- height = actualBounds.height;
636
- break;
637
- case PdfDockStyle.Bottom:
638
- x = this.convertSign(actualBounds.x);
639
- y = actualBounds.height + section.getBottomIndentHeight(document, page, false) - this.height;
640
- width = actualSize.width;
641
- height = this.height;
642
- if (actualBounds.height < 0) {
643
- y -= actualSize.height;
644
- }
645
- break;
646
- case PdfDockStyle.Fill:
647
- x = 0;
648
- x = 0;
649
- width = actualBounds.width;
650
- height = actualBounds.height;
651
- break;
652
- }
653
- result = new RectangleF(x, y, width, height);
654
- return result;
655
- }
656
- /**
657
- * Ignore value zero, otherwise convert sign.
658
- * @private
659
- */
660
- private convertSign(value : number) : number {
661
- return (value !== 0 || (value === 0 && 1 / value === -Infinity)) ? -value : value;
662
- }
663
- }