@syncfusion/ej2-pdf-export 19.4.42 → 19.4.43

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