@syncfusion/ej2-pdf-export 22.1.34 → 22.1.39

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 +16 -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,295 +0,0 @@
1
- /**
2
- * PdfColorBlend.ts class for EJ2-PDF
3
- */
4
- import { PdfColorSpace } from './../enum';
5
- import { PdfColor } from './../pdf-color';
6
- import { PdfBrush } from './pdf-brush';
7
- import { PdfFunction } from './../../general/functions/pdf-function';
8
- import { PdfSampledFunction} from './../../general/functions/pdf-sampled-function';
9
- import { PdfBlend } from './pdf-blend';
10
- /**
11
- * `PdfColorBlend` Represents the arrays of colors and positions used for
12
- * interpolating color blending in a multicolor gradient.
13
- * @private
14
- */
15
- export class PdfColorBlend extends PdfBlend {
16
- //Fields
17
- /**
18
- * Array of colors.
19
- * @private
20
- */
21
- private mcolors: PdfColor[];
22
- /**
23
- * Local variable to store the brush.
24
- */
25
- private mbrush: PdfBrush;
26
- //Constructor
27
- /**
28
- * Initializes a new instance of the `PdfColorBlend` class.
29
- * @public
30
- */
31
- public constructor()
32
- /**
33
- * Initializes a new instance of the `PdfColorBlend` class.
34
- * @public
35
- */
36
- public constructor(count: number)
37
- public constructor(count?: number) {
38
- super();
39
- if (typeof count === 'number') {
40
- super(count);
41
- }
42
- }
43
- //Properties
44
- /**
45
- * Gets or sets the array of colors.
46
- * @public
47
- */
48
- public get colors(): PdfColor[] {
49
- return this.mcolors;
50
- }
51
- public set colors(value: PdfColor[]) {
52
- if ((value == null)) {
53
- throw new Error('ArgumentNullException : Colors');
54
- }
55
- this.mcolors = value;
56
- }
57
- //Implementation
58
- /**
59
- * Gets the function.
60
- * @param colorSpace The color space.
61
- * @public
62
- */
63
- public getFunction(colorSpace: PdfColorSpace): PdfFunction {
64
- let domain: number[] = [ 0, 1];
65
- let colourComponents: number = this.getColorComponentsCount(colorSpace);
66
- let maxComponentValue: number = this.getMaxComponentValue(colorSpace);
67
- let range: number[] = this.setRange(colourComponents, maxComponentValue);
68
- let func: PdfSampledFunction = null;
69
- if ((this.mbrush == null && typeof this.mbrush === 'undefined')) {
70
- let sizes: number[] = [1];
71
- let samplesCount: number;
72
- let step: number = 1;
73
- if (this.positions.length === 2) {
74
- samplesCount = 2;
75
- } else {
76
- let positions: number[] = this.positions;
77
- let intervals: number[] = this.getIntervals(positions);
78
- let gcd: number = this.gcd(intervals);
79
- step = gcd;
80
- samplesCount = ((<number>((1 / gcd))) + 1);
81
- }
82
- sizes[0] = samplesCount;
83
- let samples: number[] = this.getSamplesValues(colorSpace, samplesCount, maxComponentValue, step);
84
- func = new PdfSampledFunction(domain, range, sizes, samples);
85
- return func;
86
- }
87
- return func;
88
- }
89
- /**
90
- * 'cloneColorBlend' Clones this instance.
91
- * @public
92
- */
93
- public cloneColorBlend(): PdfColorBlend {
94
- let cBlend: PdfColorBlend = this;
95
- if ((this.mcolors != null && typeof this.mcolors !== 'undefined')) {
96
- cBlend.colors = (<PdfColor[]>(this.mcolors));
97
- }
98
- if ((this.positions != null && typeof this.positions !== 'undefined')) {
99
- cBlend.positions = (<number[]>(this.positions));
100
- }
101
- return cBlend;
102
- }
103
- /**
104
- * Sets the range.
105
- * @param colourComponents The colour components.
106
- * @param maxValue The max value.
107
- */
108
- private setRange(colourComponents: number, maxValue: number): number[] {
109
- let range: number[] = [(colourComponents * 2)];
110
- for (let i: number = 0; (i < colourComponents); ++i) {
111
- range[(i * 2)] = 0;
112
- range[((i * 2) + 1)] = 1;
113
- }
114
- return range;
115
- }
116
- /**
117
- * Calculates the color components count according to colour space.
118
- * @param colorSpace The color space.
119
- */
120
- private getColorComponentsCount(colorSpace: PdfColorSpace): number {
121
- let count: number = 0;
122
- switch (colorSpace) {
123
- case PdfColorSpace.Rgb:
124
- count = 3;
125
- break;
126
- case PdfColorSpace.Cmyk:
127
- count = 4;
128
- break;
129
- case PdfColorSpace.GrayScale:
130
- count = 1;
131
- break;
132
- default:
133
- throw new Error('ArgumentException - Unsupported color space: ' + colorSpace + ' colorSpace');
134
- }
135
- return count;
136
- }
137
- /**
138
- * Gets samples values for specified colour space.
139
- * @param colorSpace The color space.
140
- * @param sampleCount The sample count.
141
- * @param maxComponentValue The max component value.
142
- * @param step The step.
143
- */
144
- private getSamplesValues(colorSpace: PdfColorSpace, sampleCount: number, maxComponentValue: number, step: number): number[] {
145
- let values: number[];
146
- switch (colorSpace) {
147
- case PdfColorSpace.GrayScale:
148
- values = this.getGrayscaleSamples(sampleCount, maxComponentValue, step);
149
- break;
150
- case PdfColorSpace.Cmyk:
151
- values = this.getCmykSamples(sampleCount, maxComponentValue, step);
152
- break;
153
- case PdfColorSpace.Rgb:
154
- values = this.getRgbSamples(sampleCount, maxComponentValue, step);
155
- break;
156
- default:
157
- throw new Error('ArgumentException - Unsupported color space: ' + colorSpace + ' colorSpace');
158
- }
159
- return values;
160
- }
161
- /**
162
- * Gets the grayscale samples.
163
- * @param sampleCount The sample count.
164
- * @param maxComponentValue The max component value.
165
- * @param step The step.
166
- */
167
- private getGrayscaleSamples(sampleCount: number, maxComponentValue: number, step: number): number[] {
168
- let values: number[] = [(sampleCount * 2)];
169
- for (let i: number = 0; (i < sampleCount); ++i) {
170
- let color: PdfColor = this.getNextColor(i, step, PdfColorSpace.GrayScale);
171
- let index: number = (i * 2);
172
- }
173
- return values;
174
- }
175
- /**
176
- * Gets the RGB samples.
177
- * @param sampleCount The sample count.
178
- * @param maxComponentValue The max component value.
179
- * @param step The step.
180
- */
181
- private getRgbSamples(sampleCount: number, maxComponentValue: number, step: number): number[] {
182
- let values: number[] = [(sampleCount * 3)];
183
- for (let i: number = 0; (i < sampleCount); ++i) {
184
- let color: PdfColor = this.getNextColor(i, step, PdfColorSpace.Rgb);
185
- let index: number = (i * 3);
186
- values[index] = color.r;
187
- values[(index + 1)] = color.g;
188
- values[(index + 2)] = color.b;
189
- }
190
- return values;
191
- }
192
- /**
193
- * Gets the CMYK samples.
194
- * @param sampleCount The sample count.
195
- * @param maxComponentValue The max component value.
196
- * @param step The step.
197
- */
198
- private getCmykSamples(sampleCount: number, maxComponentValue: number, step: number): number[] {
199
- let values: number[] = [(sampleCount * 4)];
200
- for (let i: number = 0; (i < sampleCount); i++) {
201
- let color: PdfColor = this.getNextColor(i, step, PdfColorSpace.Cmyk);
202
- let index: number = (i * 4);
203
- values[index] = (<number>((color.c * maxComponentValue)));
204
- values[(index + 1)] = (<number>((color.m * maxComponentValue)));
205
- values[(index + 2)] = (<number>((color.y * maxComponentValue)));
206
- values[(index + 3)] = (<number>((color.k * maxComponentValue)));
207
- }
208
- return values;
209
- }
210
- /**
211
- * Calculates the color that should be at the specified index.
212
- * @param index The index.
213
- * @param step The step.
214
- * @param colorSpace The color space.
215
- */
216
- private getNextColor(index: number, step: number, colorSpace: PdfColorSpace): PdfColor {
217
- let position: number = (step * index);
218
- let indexHi: number;
219
- let indexLow: number;
220
- let result : { indexLow : number, indexHi : number} = this.getIndices(position, indexLow, indexHi);
221
- indexLow = result.indexLow;
222
- indexHi = result.indexHi;
223
- let color: PdfColor;
224
- if (indexLow === indexHi) {
225
- color = this.mcolors[indexLow];
226
- } else {
227
- let positionLow: number = this.positions[indexLow];
228
- let positionHi: number = this.positions[indexHi];
229
- let colorLow: PdfColor = this.mcolors[indexLow];
230
- let colorHi: PdfColor = this.mcolors[indexHi];
231
- let t: number = ((position - positionLow) / (positionHi - positionLow));
232
- color = this.interpolate(t, colorLow, colorHi, colorSpace);
233
- }
234
- return color;
235
- }
236
- /**
237
- * Gets the indices.
238
- * @param position The position.
239
- * @param indexLow The index low.
240
- * @param indexHi The index hi.
241
- */
242
- private getIndices(position: number, indexLow: number, indexHi: number) : { indexLow : number, indexHi : number} {
243
- let positions: number[] = this.positions;
244
- indexLow = 0;
245
- indexHi = 0;
246
- for (let i: number = 0; (i < this.mcolors.length); ++i) {
247
- let currPos: number = positions[i];
248
- if ((currPos === position)) {
249
- indexHi = i;
250
- indexLow = i;
251
- break;
252
- } else if ((currPos > position)) {
253
- indexHi = i;
254
- break;
255
- }
256
- indexLow = i;
257
- indexHi = i;
258
- }
259
- return { indexLow : indexLow, indexHi : indexHi };
260
- }
261
- /**
262
- * Calculates the max component value.
263
- * @param colorSpace The color space.
264
- */
265
- private getMaxComponentValue(colorSpace: PdfColorSpace) : number {
266
- let result: number = 0;
267
- switch (colorSpace) {
268
- case PdfColorSpace.Cmyk:
269
- case PdfColorSpace.Rgb:
270
- result = 255;
271
- break;
272
- case PdfColorSpace.GrayScale:
273
- result = 65535;
274
- break;
275
- default:
276
- throw new Error('ArgumentException - Unsupported color space: ' + colorSpace + 'colorSpace');
277
- }
278
- return result;
279
- }
280
- /**
281
- * Gets an intervals array from the positions array.
282
- * @param positions The positions array.
283
- */
284
- private getIntervals(positions: number[]): number[] {
285
- let count: number = positions.length;
286
- let intervals: number[] = [(count - 1)];
287
- let prev: number = positions[0];
288
- for (let i: number = 1; (i < count); ++i) {
289
- let v: number = positions[i];
290
- intervals[(i - 1)] = (v - prev);
291
- prev = v;
292
- }
293
- return intervals;
294
- }
295
- }
@@ -1,311 +0,0 @@
1
- /**
2
- * PdfGradientBrush.ts class for EJ2-PDF
3
- */
4
- import { PdfStreamWriter } from './../../input-output/pdf-stream-writer';
5
- import { GetResourceEventHandler } from './../pdf-graphics';
6
- import { PdfColorSpace } from './../enum';
7
- import { PdfColor } from './../pdf-color';
8
- import { PdfBrush } from './pdf-brush';
9
- import { IPdfWrapper } from '../../../interfaces/i-pdf-wrapper';
10
- import { PdfDictionary} from '../../primitives/pdf-dictionary';
11
- import { PdfTransformationMatrix } from './../pdf-transformation-matrix';
12
- import { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';
13
- import { PdfBoolean } from './../../primitives/pdf-boolean';
14
- import { PdfArray } from './../../primitives/pdf-array';
15
- import { PdfName } from '../../primitives/pdf-name';
16
- import { PdfNumber} from '../../primitives/pdf-number';
17
- import { PdfReferenceHolder } from '../../primitives/pdf-reference';
18
- import { IPdfPrimitive } from './../../../interfaces/i-pdf-primitives';
19
- import { PdfFunction } from './../../general/functions/pdf-function';
20
- import { PdfResources } from './../pdf-resources';
21
- /**
22
- * `PdfGradientBrush` class provides objects used to fill the interiors of graphical shapes such as rectangles,
23
- * ellipses, pies, polygons, and paths.
24
- * @private
25
- */
26
- export abstract class PdfGradientBrush extends PdfBrush implements IPdfWrapper {
27
- // Fields
28
- /**
29
- * Local variable to store the background color.
30
- * @private
31
- */
32
- private mbackground : PdfColor = new PdfColor(255, 255, 255);
33
- /**
34
- * Local variable to store the stroking color.
35
- * @private
36
- */
37
- private mbStroking : boolean = false;
38
- /**
39
- * Local variable to store the dictionary.
40
- * @private
41
- */
42
- private mpatternDictionary : PdfDictionary;
43
- /**
44
- * Local variable to store the shading.
45
- * @private
46
- */
47
- private mshading : PdfDictionary;
48
- /**
49
- * Local variable to store the Transformation Matrix.
50
- * @private
51
- */
52
- private mmatrix: PdfTransformationMatrix;
53
- /**
54
- * Local variable to store the colorSpace.
55
- * @private
56
- */
57
- private mcolorSpace: PdfColorSpace;
58
- /**
59
- * Local variable to store the function.
60
- * @private
61
- */
62
- private mfunction: PdfFunction = null;
63
- /**
64
- * Local variable to store the DictionaryProperties.
65
- * @private
66
- */
67
- private dictionaryProperties : DictionaryProperties = new DictionaryProperties();
68
- //Constructor
69
- /**
70
- * Initializes a new instance of the `PdfGradientBrush` class.
71
- * @public
72
- */
73
- /* tslint:disable-next-line:max-line-length */
74
- public constructor(shading: PdfDictionary) {
75
- super();
76
- this.mpatternDictionary = new PdfDictionary();
77
- this.mpatternDictionary.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.pattern));
78
- this.mpatternDictionary.items.setValue(this.dictionaryProperties.patternType, new PdfNumber(2));
79
- this.shading = shading;
80
- this.colorSpace = PdfColorSpace.Rgb;
81
- }
82
- //Properties
83
- /**
84
- * Gets or sets the background color of the brush.
85
- * @public
86
- */
87
- public get background(): PdfColor {
88
- return this.mbackground;
89
- }
90
- public set background(value: PdfColor) {
91
- this.mbackground = value;
92
- let sh: PdfDictionary = this.shading;
93
- if (value.isEmpty) {
94
- sh.remove(this.dictionaryProperties.background);
95
- } else {
96
- sh.items.setValue(this.dictionaryProperties.background, value.toArray(this.colorSpace));
97
- }
98
- }
99
- /**
100
- * Gets or sets a value indicating whether use anti aliasing algorithm.
101
- * @public
102
- */
103
- public get antiAlias(): boolean {
104
- let sh: PdfDictionary = this.shading;
105
- let aa: PdfBoolean = (<PdfBoolean>(sh.items.getValue(this.dictionaryProperties.antiAlias)));
106
- return aa.value;
107
- }
108
- public set antiAlias(value: boolean) {
109
- let sh: PdfDictionary = this.shading;
110
- let aa: PdfBoolean = (<PdfBoolean>(sh.items.getValue(this.dictionaryProperties.antiAlias)));
111
- if ((aa == null && typeof aa === 'undefined')) {
112
- aa = new PdfBoolean(value);
113
- sh.items.setValue(this.dictionaryProperties.antiAlias, aa);
114
- } else {
115
- aa.value = value;
116
- }
117
- }
118
- /**
119
- * Gets or sets the function of the brush.
120
- * @protected
121
- */
122
- protected get function(): PdfFunction {
123
- return this.mfunction;
124
- }
125
- protected set function(value: PdfFunction) {
126
- this.mfunction = value;
127
- if (value != null && typeof value !== 'undefined') {
128
- this.shading.items.setValue(this.dictionaryProperties.function, new PdfReferenceHolder(this.mfunction));
129
- } else {
130
- this.shading.remove(this.dictionaryProperties.function);
131
- }
132
- }
133
- /**
134
- * Gets or sets the boundary box of the brush.
135
- * @protected
136
- */
137
- protected get bBox(): PdfArray {
138
- let sh: PdfDictionary = this.shading;
139
- let box: PdfArray = (<PdfArray>(sh.items.getValue(this.dictionaryProperties.bBox)));
140
- return box;
141
- }
142
- protected set bBox(value: PdfArray) {
143
- let sh: PdfDictionary = this.shading;
144
- if (value == null && typeof value === 'undefined') {
145
- sh.remove(this.dictionaryProperties.bBox);
146
- } else {
147
- sh.items.setValue(this.dictionaryProperties.bBox, value);
148
- }
149
- }
150
- /**
151
- * Gets or sets the color space of the brush.
152
- * @public
153
- */
154
- public get colorSpace(): PdfColorSpace {
155
- return this.mcolorSpace;
156
- }
157
- public set colorSpace(value: PdfColorSpace) {
158
- let colorSpace: IPdfPrimitive = this.shading.items.getValue(this.dictionaryProperties.colorSpace);
159
- if ((value !== this.mcolorSpace) || (colorSpace == null)) {
160
- this.mcolorSpace = value;
161
- let csValue: string = this.colorSpaceToDeviceName(value);
162
- this.shading.items.setValue(this.dictionaryProperties.colorSpace, new PdfName(csValue));
163
- }
164
- }
165
- /**
166
- * Gets or sets a value indicating whether this PdfGradientBrush is stroking.
167
- * @public
168
- */
169
- public get stroking(): boolean {
170
- return this.mbStroking;
171
- }
172
- public set stroking(value: boolean) {
173
- this.mbStroking = value;
174
- }
175
- /**
176
- * Gets the pattern dictionary.
177
- * @protected
178
- */
179
- protected get patternDictionary(): PdfDictionary {
180
- if (this.mpatternDictionary == null) {
181
- this.mpatternDictionary = new PdfDictionary();
182
- }
183
- return this.mpatternDictionary;
184
- }
185
- /**
186
- * Gets or sets the shading dictionary.
187
- * @protected
188
- */
189
- protected get shading(): PdfDictionary {
190
- return this.mshading;
191
- }
192
- protected set shading(value: PdfDictionary) {
193
- if (value == null) {
194
- throw new Error('ArgumentNullException : Shading');
195
- }
196
- if (value !== this.mshading) {
197
- this.mshading = value;
198
- this.patternDictionary.items.setValue(this.dictionaryProperties.shading, new PdfReferenceHolder(this.mshading));
199
- }
200
- }
201
- /**
202
- * Gets or sets the transformation matrix.
203
- * @public
204
- */
205
- public get matrix(): PdfTransformationMatrix {
206
- return this.mmatrix;
207
- }
208
- public set matrix(value: PdfTransformationMatrix) {
209
- if (value == null) {
210
- throw new Error('ArgumentNullException : Matrix');
211
- }
212
- if (value !== this.mmatrix) {
213
- this.mmatrix = value.clone();
214
- let m: PdfArray = new PdfArray(this.mmatrix.matrix.elements);
215
- this.mpatternDictionary.items.setValue(this.dictionaryProperties.matrix, m);
216
- }
217
- }
218
- //Overrides
219
- /**
220
- * Monitors the changes of the brush and modify PDF state respectfully.
221
- * @param brush The brush.
222
- * @param streamWriter The stream writer.
223
- * @param getResources The get resources delegate.
224
- * @param saveChanges if set to true the changes should be saved anyway.
225
- * @param currentColorSpace The current color space.
226
- */
227
- /* tslint:disable-next-line:max-line-length */
228
- public monitorChanges(brush: PdfBrush, streamWriter: PdfStreamWriter, getResources: GetResourceEventHandler, saveChanges: boolean, currentColorSpace: PdfColorSpace): boolean {
229
- let diff: boolean = false;
230
- if (brush instanceof PdfGradientBrush) {
231
- if ((this.colorSpace !== currentColorSpace)) {
232
- this.colorSpace = currentColorSpace;
233
- this.resetFunction();
234
- }
235
- // Set the /Pattern colour space.
236
- streamWriter.setColorSpace('Pattern', this.mbStroking);
237
- // Set the pattern for non-stroking operations.
238
- let resources : PdfResources = getResources.getResources();
239
- let name: PdfName = resources.getName(this);
240
- streamWriter.setColourWithPattern(null, name, this.mbStroking);
241
- diff = true;
242
- }
243
- return diff;
244
- }
245
- /**
246
- * Resets the changes, which were made by the brush.
247
- * In other words resets the state to the initial one.
248
- * @param streamWriter The stream writer.
249
- */
250
- public resetChanges(streamWriter: PdfStreamWriter): void {
251
- // Unable reset.
252
- }
253
- //Implementation
254
- /**
255
- * Converts colorspace enum to a PDF name.
256
- * @param colorSpace The color space enum value.
257
- */
258
- private colorSpaceToDeviceName(colorSpace: PdfColorSpace): string {
259
- let result: string;
260
- switch (colorSpace) {
261
- case PdfColorSpace.Rgb:
262
- result = 'DeviceRGB';
263
- break;
264
- }
265
- return result;
266
- }
267
- /**
268
- * Resets the pattern dictionary.
269
- * @param dictionary A new pattern dictionary.
270
- */
271
- protected resetPatternDictionary(dictionary: PdfDictionary) : void {
272
- this.mpatternDictionary = dictionary;
273
- }
274
- /**
275
- * Resets the function.
276
- */
277
- public abstract resetFunction() : void;
278
- /**
279
- * Clones the anti aliasing value.
280
- * @param brush The brush.
281
- */
282
- protected cloneAntiAliasingValue(brush: PdfGradientBrush) : void {
283
- if ((brush == null)) {
284
- throw new Error('ArgumentNullException : brush');
285
- }
286
- let sh: PdfDictionary = this.shading;
287
- let aa: PdfBoolean = (<PdfBoolean>(sh.items.getValue(this.dictionaryProperties.antiAlias)));
288
- if ((aa != null)) {
289
- brush.shading.items.setValue(this.dictionaryProperties.antiAlias, new PdfBoolean(aa.value));
290
- }
291
- }
292
- /**
293
- * Clones the background value.
294
- * @param brush The brush.
295
- */
296
- protected cloneBackgroundValue(brush: PdfGradientBrush) : void {
297
- let background: PdfColor = this.background;
298
- if (!background.isEmpty) {
299
- brush.background = background;
300
- }
301
- }
302
- /* tslint:enable */
303
- // IPdfWrapper Members
304
- /**
305
- * Gets the `element`.
306
- * @private
307
- */
308
- public get element() : IPdfPrimitive {
309
- return this.patternDictionary;
310
- }
311
- }