@syncfusion/ej2-pdf-export 22.1.34 → 22.1.37

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 (169) hide show
  1. package/CHANGELOG.md +8 -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 +748 -93
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +933 -225
  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 +5 -5
  13. package/src/implementation/document/pdf-catalog.d.ts +7 -0
  14. package/src/implementation/document/pdf-catalog.js +16 -0
  15. package/src/implementation/document/pdf-document-base.d.ts +13 -0
  16. package/src/implementation/document/pdf-document-base.js +18 -0
  17. package/src/implementation/document/pdf-viewer-preferences.d.ts +467 -0
  18. package/src/implementation/document/pdf-viewer-preferences.js +624 -0
  19. package/src/implementation/input-output/pdf-dictionary-properties.d.ts +55 -0
  20. package/src/implementation/input-output/pdf-dictionary-properties.js +55 -0
  21. package/dist/ts/implementation/actions/action.ts +0 -76
  22. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  23. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  24. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  25. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  26. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  27. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  28. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  29. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  30. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  31. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  32. package/dist/ts/implementation/collections/utils.ts +0 -38
  33. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  34. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  35. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  36. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  37. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  38. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  39. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  40. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  41. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  42. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  43. package/dist/ts/implementation/document/pdf-catalog.ts +0 -52
  44. package/dist/ts/implementation/document/pdf-document-base.ts +0 -166
  45. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  46. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  47. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  48. package/dist/ts/implementation/general/enum.ts +0 -21
  49. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  50. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -62
  51. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  52. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  53. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  54. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  55. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  56. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  57. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  58. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  59. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  60. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  61. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  62. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  63. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  64. package/dist/ts/implementation/graphics/constants.ts +0 -31
  65. package/dist/ts/implementation/graphics/enum.ts +0 -413
  66. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  67. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  68. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  69. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  70. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  71. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  72. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  73. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  74. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  75. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  76. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  77. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  78. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  79. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  80. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  81. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  82. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  83. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  84. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  85. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  86. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  87. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  88. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  89. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  90. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  91. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  92. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  93. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  94. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  95. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  96. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  97. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  98. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  99. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  100. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  101. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  102. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  103. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  104. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  105. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  106. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  107. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  108. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  109. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  110. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  111. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  112. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  113. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -439
  114. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  115. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  116. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  117. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2424
  118. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  119. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  120. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  121. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  122. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  123. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  124. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  125. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  126. package/dist/ts/implementation/input-output/enum.ts +0 -16
  127. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  128. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -515
  129. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  130. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  131. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  132. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  133. package/dist/ts/implementation/pages/enum.ts +0 -201
  134. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  135. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  136. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  137. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  138. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  139. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  140. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  141. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -659
  142. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  143. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  144. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  145. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  146. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  147. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  148. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  149. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  150. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  151. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  152. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  153. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -336
  154. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  155. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
  156. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1193
  157. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  158. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
  159. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
  160. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  161. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  162. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  163. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  164. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  165. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  166. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  167. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  168. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  169. 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
- }