@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,137 +0,0 @@
1
- /**
2
- * ByteArray class
3
- * Used to keep information about image stream as byte array.
4
- * @private
5
- */
6
- export class ByteArray {
7
- /**
8
- * Current stream `position`.
9
- * @default 0
10
- * @private
11
- */
12
- private mPosition: number = 0;
13
- /**
14
- * Uint8Array for returing `buffer`.
15
- * @hidden
16
- * @private
17
- */
18
- private buffer: Uint8Array;
19
- /**
20
- * Specifies the `data view`.
21
- * @hidden
22
- * @private
23
- */
24
- private dataView: DataView;
25
- /**
26
- * Initialize the new instance for `byte-array` class
27
- * @hidden
28
- * @private
29
- */
30
- constructor(length: number) {
31
- this.buffer = new Uint8Array(length);
32
- this.dataView = new DataView(this.buffer.buffer);
33
- }
34
- /**
35
- * Gets and Sets a current `position` of byte array.
36
- * @hidden
37
- * @private
38
- */
39
- public get position(): number {
40
- return this.mPosition;
41
- }
42
- public set position(value: number) {
43
- this.mPosition = value;
44
- }
45
- /**
46
- * `Read` from current stream position.
47
- * @default 0
48
- * @hidden
49
- * @private
50
- */
51
- public read(buffer: ByteArray, offset: number, count: number): void {
52
- for (let index: number = offset; index < count; index++) {
53
- let position: number = this.position;
54
- buffer.buffer[index] = this.readByte(position);
55
- this.position++;
56
- }
57
- }
58
- /**
59
- * @hidden
60
- */
61
- public getBuffer(index: number): number {
62
- return this.buffer[index];
63
- }
64
- /**
65
- * @hidden
66
- */
67
- public writeFromBase64String(base64: string): void {
68
- let arr: Uint8Array = this.encodedString(base64);
69
- this.buffer = arr;
70
- }
71
- /**
72
- * @hidden
73
- */
74
- public encodedString(input: string): Uint8Array {
75
- let keyStr: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
76
- let chr1: number;
77
- let chr2: number;
78
- let chr3: number;
79
- let enc1: number;
80
- let enc2: number;
81
- let enc3: number;
82
- let enc4: number;
83
- let i: number = 0;
84
- let resultIndex: number = 0;
85
- let dataUrlPrefix: string = 'data:';
86
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
87
- let totalLength: number = input.length * 3 / 4;
88
- if (input.charAt(input.length - 1) === keyStr.charAt(64)) {
89
- totalLength--;
90
- }
91
- let output: Uint8Array = new Uint8Array(totalLength | 0);
92
- while (i < input.length) {
93
- enc1 = keyStr.indexOf(input.charAt(i++));
94
- enc2 = keyStr.indexOf(input.charAt(i++));
95
- enc3 = keyStr.indexOf(input.charAt(i++));
96
- enc4 = keyStr.indexOf(input.charAt(i++));
97
- chr1 = (enc1 << 2) | (enc2 >> 4);
98
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
99
- chr3 = ((enc3 & 3) << 6) | enc4;
100
- output[resultIndex++] = chr1;
101
- output[resultIndex++] = chr2;
102
- output[resultIndex++] = chr3;
103
- }
104
- return output;
105
- }
106
- /**
107
- * @hidden
108
- */
109
- public readByte(offset: number): number {
110
- return (this.buffer[offset]);
111
- }
112
- /**
113
- * @hidden
114
- */
115
- public get internalBuffer(): Uint8Array {
116
- return this.buffer;
117
- }
118
- /**
119
- * @hidden
120
- */
121
- public get count(): number {
122
- return this.buffer.byteLength;
123
- }
124
- /**
125
- * 'readNextTwoBytes' stream
126
- * @hidden
127
- * @private
128
- */
129
- public readNextTwoBytes(stream: ByteArray): number {
130
- let data : number = stream.readByte(this.position);
131
- this.position++;
132
- data <<= 8;
133
- data |= stream.readByte(this.position);
134
- this.position++;
135
- return data;
136
- }
137
- }
@@ -1,439 +0,0 @@
1
- /**
2
- * ImageDecoder class
3
- */
4
- import { ByteArray } from './byte-array';
5
- import { PdfStream } from './../../primitives/pdf-stream';
6
- import { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';
7
- import { PdfName } from './../../primitives/pdf-name';
8
- import { PdfNumber } from './../../primitives/pdf-number';
9
- import { PdfBoolean } from './../../primitives/pdf-boolean';
10
- import { PdfDictionary } from './../../primitives/pdf-dictionary';
11
- /**
12
- * Specifies the image `format`.
13
- * @private
14
- */
15
- export enum ImageFormat {
16
- /**
17
- * Specifies the type of `Unknown`.
18
- * @hidden
19
- * @private
20
- */
21
- Unknown,
22
- /**
23
- * Specifies the type of `Bmp`.
24
- * @hidden
25
- * @private
26
- */
27
- Bmp,
28
- /**
29
- * Specifies the type of `Emf`.
30
- * @hidden
31
- * @private
32
- */
33
- Emf,
34
- /**
35
- * Specifies the type of `Gif`.
36
- * @hidden
37
- * @private
38
- */
39
- Gif,
40
- /**
41
- * Specifies the type of `Jpeg`.
42
- * @hidden
43
- * @private
44
- */
45
- Jpeg,
46
- /**
47
- * Specifies the type of `Png`.
48
- * @hidden
49
- * @private
50
- */
51
- Png,
52
- /**
53
- * Specifies the type of `Wmf`.
54
- * @hidden
55
- * @private
56
- */
57
- Wmf,
58
- /**
59
- * Specifies the type of `Icon`.
60
- * @hidden
61
- * @private
62
- */
63
- Icon
64
- }
65
- /**
66
- * `Decode the image stream`.
67
- * @private
68
- */
69
- export class ImageDecoder {
70
- /**
71
- * Start of file markers.
72
- * @hidden
73
- * @private
74
- */
75
- private sof1Marker : number = 0x00C1;
76
- private sof2Marker : number = 0x00C2;
77
- private sof3Marker : number = 0x00C3;
78
- private sof5Marker : number = 0x00C5;
79
- private sof6Marker : number = 0x00C6;
80
- private sof7Marker : number = 0x00C7;
81
- private sof9Marker : number = 0x00C9;
82
- private sof10Marker : number = 0x00CA;
83
- private sof11Marker : number = 0x00CB;
84
- private sof13Marker : number = 0x00CD;
85
- private sof14Marker : number = 0x00CE;
86
- private sof15Marker : number = 0x00CF;
87
- /**
88
- * Number array for `png header`.
89
- * @hidden
90
- * @private
91
- */
92
- private static mPngHeader: number[] = [137, 80, 78, 71, 13, 10, 26, 10];
93
- /**
94
- * Number Array for `jpeg header`.
95
- * @hidden
96
- * @private
97
- */
98
- private static mJpegHeader: number[] = [255, 216];
99
- /**
100
- * Number array for `gif header`.
101
- * @hidden
102
- * @private
103
- */
104
- private static GIF_HEADER: string = 'G,I,F,8';
105
- /**
106
- * Number array for `bmp header.`
107
- * @hidden
108
- * @private
109
- */
110
- private static BMP_HEADER: string = 'B,M';
111
- /**
112
- * `memory stream` to store image data.
113
- * @hidden
114
- * @private
115
- */
116
- private mStream: ByteArray;
117
- /**
118
- * Specifies `format` of image.
119
- * @hidden
120
- * @private
121
- */
122
- private mFormat: ImageFormat = ImageFormat.Unknown;
123
- /**
124
- * `height` of image.
125
- * @hidden
126
- * @private
127
- */
128
- private mHeight: number;
129
- /**
130
- * `width` of image.
131
- * @hidden
132
- * @private
133
- */
134
- private mWidth: number;
135
- /**
136
- * `Bits per component`.
137
- * @default 8
138
- * @hidden
139
- * @private
140
- */
141
- private mbitsPerComponent : number = 8;
142
- /**
143
- * ByteArray to store `image data`.
144
- * @hidden
145
- * @private
146
- */
147
- private mImageData: ByteArray;
148
- /**
149
- * Store an instance of `PdfStream` for an image.
150
- * @hidden
151
- * @private
152
- */
153
- private imageStream : PdfStream;
154
- /**
155
- * 'offset' of image.
156
- * @hidden
157
- * @private
158
- */
159
- private offset : number;
160
- /**
161
- * Internal variable for accessing fields from `DictionryProperties` class.
162
- * @hidden
163
- * @private
164
- */
165
- private dictionaryProperties : DictionaryProperties = new DictionaryProperties();
166
- /**
167
- * Initialize the new instance for `image-decoder` class.
168
- * @private
169
- */
170
- public constructor(stream: ByteArray) {
171
- this.mStream = stream;
172
- this.initialize();
173
- }
174
- /**
175
- * Gets the `height` of image.
176
- * @hidden
177
- * @private
178
- */
179
- public get height(): number {
180
- return this.mHeight;
181
- }
182
- /**
183
- * Gets the `width` of image.
184
- * @hidden
185
- * @private
186
- */
187
- public get width(): number {
188
- return this.mWidth;
189
- }
190
- /**
191
- * Gets `bits per component`.
192
- * @hidden
193
- * @private
194
- */
195
- public get bitsPerComponent() : number {
196
- return this.mbitsPerComponent;
197
- }
198
- /**
199
- * Gets the `size` of an image data.
200
- * @hidden
201
- * @private
202
- */
203
- public get size(): number {
204
- return this.mImageData.count;
205
- }
206
- /**
207
- * Gets the value of an `image data`.
208
- * @hidden
209
- * @private
210
- */
211
- public get imageData(): ByteArray {
212
- return this.mImageData;
213
- }
214
- /**
215
- * Gets the value of an `image data as number array`.
216
- * @hidden
217
- * @private
218
- */
219
- public get imageDataAsNumberArray() : ArrayBuffer {
220
- return this.mImageData.internalBuffer.buffer;
221
- }
222
- /**
223
- * `Initialize` image data and image stream.
224
- * @hidden
225
- * @private
226
- */
227
- private initialize(): void {
228
- if (this.mFormat === ImageFormat.Unknown && this.checkIfJpeg()) {
229
- this.mFormat = ImageFormat.Jpeg;
230
- this.parseJpegImage();
231
- } else {
232
- throw new TypeError('Only the JPEG format is supported');
233
- }
234
- this.reset();
235
- this.mImageData = new ByteArray(this.mStream.count);
236
- this.mStream.read(this.mImageData, 0, this.mImageData.count);
237
- }
238
- /**
239
- * `Reset` stream position into 0.
240
- * @hidden
241
- * @private
242
- */
243
- private reset(): void {
244
- this.mStream.position = 0;
245
- }
246
- /**
247
- * `Parse` Jpeg image.
248
- * @hidden
249
- * @private
250
- */
251
- private parseJpegImage(): void {
252
- this.reset();
253
- let imgData: ByteArray = new ByteArray(this.mStream.count);
254
- this.mStream.read(imgData, 0, imgData.count);
255
- let i: number = 4;
256
- let isLengthExceed : boolean = false;
257
- /* tslint:disable */
258
- let length: number = imgData.getBuffer(i) * 256 + imgData.getBuffer(i + 1);
259
- while (i < imgData.count) {
260
- i += length;
261
- if (i < imgData.count) {
262
- if (imgData.getBuffer(i + 1) === 192) {
263
- this.mHeight = imgData.getBuffer(i + 5) * 256 + imgData.getBuffer(i + 6);
264
- this.mWidth = imgData.getBuffer(i + 7) * 256 + imgData.getBuffer(i + 8);
265
- return;
266
- } else {
267
- i += 2;
268
- length = imgData.getBuffer(i) * 256 + imgData.getBuffer(i + 1);
269
- }
270
- } else {
271
- isLengthExceed = true;
272
- break;
273
- }
274
- }
275
- if (isLengthExceed) {
276
- this.mStream.position = 0;
277
- this.skip(this.mStream, 2);
278
- this.readExceededJPGImage(this.mStream);
279
- }
280
- /* tslint:enable */
281
- }
282
- /**
283
- * Gets the image `format`.
284
- * @private
285
- * @hidden
286
- */
287
- public get format(): ImageFormat {
288
- return this.mFormat;
289
- }
290
- /**
291
- * `Checks if JPG`.
292
- * @private
293
- * @hidden
294
- */
295
- private checkIfJpeg(): boolean {
296
- this.reset();
297
- for (let i: number = 0; i < ImageDecoder.mJpegHeader.length; i++) {
298
- if (ImageDecoder.mJpegHeader[i] !== this.mStream.readByte(i)) {
299
- return false;
300
- }
301
- this.mStream.position++;
302
- }
303
- return true;
304
- }
305
- /**
306
- * Return image `dictionary`.
307
- * @hidden
308
- * @private
309
- */
310
- public getImageDictionary() : PdfStream {
311
- if (this.mFormat === ImageFormat.Jpeg) {
312
- let tempArrayBuffer : number = this.imageData.internalBuffer.length;
313
- this.imageStream = new PdfStream();
314
- this.imageStream.isImage = true;
315
- let tempString : string = '';
316
- let decodedString : string = '';
317
- for (let i : number = 0; i < this.imageDataAsNumberArray.byteLength; i++ ) {
318
- tempString += String.fromCharCode(null, this.mStream.readByte(i));
319
- }
320
- for (let i : number = 0; i < tempString.length; i++) {
321
- if (i % 2 !== 0) {
322
- decodedString += tempString[i];
323
- }
324
- }
325
- this.imageStream.data = [decodedString];
326
- this.imageStream.compress = false;
327
- this.imageStream.items.setValue(this.dictionaryProperties.type, new PdfName(this.dictionaryProperties.xObject));
328
- this.imageStream.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.image));
329
- this.imageStream.items.setValue(this.dictionaryProperties.width, new PdfNumber(this.width));
330
- this.imageStream.items.setValue(this.dictionaryProperties.height, new PdfNumber(this.height));
331
- this.imageStream.items.setValue(this.dictionaryProperties.bitsPerComponent, new PdfNumber(this.bitsPerComponent));
332
- this.imageStream.items.setValue(this.dictionaryProperties.filter, new PdfName(this.dictionaryProperties.dctdecode));
333
- this.imageStream.items.setValue(this.dictionaryProperties.colorSpace, new PdfName(this.getColorSpace() as string));
334
- this.imageStream.items.setValue(this.dictionaryProperties.decodeParms, this.getDecodeParams());
335
- return this.imageStream;
336
- } else {
337
- return this.imageStream;
338
- }
339
- }
340
- /**
341
- * Return `colorSpace` of an image.
342
- * @hidden
343
- * @private
344
- */
345
- private getColorSpace() : string {
346
- return this.dictionaryProperties.deviceRgb;
347
- }
348
- /**
349
- * Return `decode parameters` of an image.
350
- * @hidden
351
- * @private
352
- */
353
- private getDecodeParams() : PdfDictionary {
354
- let decodeParams : PdfDictionary = new PdfDictionary();
355
- decodeParams.items.setValue(this.dictionaryProperties.columns, new PdfNumber(this.width));
356
- decodeParams.items.setValue(this.dictionaryProperties.blackIs1, new PdfBoolean(true));
357
- decodeParams.items.setValue(this.dictionaryProperties.k, new PdfNumber(-1));
358
- decodeParams.items.setValue(this.dictionaryProperties.predictor, new PdfNumber(15));
359
- decodeParams.items.setValue(this.dictionaryProperties.bitsPerComponent, new PdfNumber(this.bitsPerComponent));
360
- return decodeParams;
361
- }
362
-
363
- /**
364
- * 'readExceededJPGImage' stream
365
- * @hidden
366
- * @private
367
- */
368
- private readExceededJPGImage(stream: ByteArray): void {
369
- this.mStream = stream;
370
- let isContinueReading : boolean = true;
371
- while (isContinueReading) {
372
- let marker : number = this.getMarker(stream);
373
- switch (marker) {
374
- case this.sof1Marker:
375
- case this.sof2Marker:
376
- case this.sof3Marker:
377
- case this.sof5Marker:
378
- case this.sof6Marker:
379
- case this.sof7Marker:
380
- case this.sof9Marker:
381
- case this.sof10Marker:
382
- case this.sof11Marker:
383
- case this.sof13Marker:
384
- case this.sof14Marker:
385
- case this.sof15Marker:
386
- stream.position += 3;
387
- this.mHeight = this.mStream.readNextTwoBytes(stream);
388
- this.mWidth = this.mStream.readNextTwoBytes(stream);
389
- isContinueReading = false;
390
- break;
391
- default:
392
- this.skipStream(stream);
393
- break;
394
- }
395
- }
396
- }
397
- /**
398
- * 'skip' stream
399
- * @hidden
400
- * @private
401
- */
402
- private skip(stream: ByteArray, noOfBytes: number): void {
403
- this.mStream = stream;
404
- let temp : ByteArray = new ByteArray(noOfBytes);
405
- this.mStream.read(temp, 0, temp.count);
406
- }
407
- /**
408
- * 'getMarker' stream
409
- * @hidden
410
- * @private
411
- */
412
- private getMarker(stream: ByteArray): number {
413
- let skippedByte : number = 0;
414
- let marker : number = 32;
415
- marker = stream.readByte(this.mStream.position);
416
- stream.position++;
417
- while (marker !== 255) {
418
- skippedByte++;
419
- marker = stream.readByte(this.mStream.position); stream.position++;
420
- }
421
- do {
422
- marker = stream.readByte(this.mStream.position);
423
- stream.position++;
424
- }
425
- while (marker === 255);
426
- return marker;
427
- }
428
- /**
429
- * 'skipStream' stream
430
- * @hidden
431
- * @private
432
- */
433
- private skipStream(stream: ByteArray): void {
434
- let markerLength : number = this.mStream.readNextTwoBytes(stream) - 2;
435
- if (markerLength > 0) {
436
- stream.position += markerLength;
437
- }
438
- }
439
- }
@@ -1,110 +0,0 @@
1
- /**
2
- * PdfBitmap.ts class for EJ2-PDF
3
- */
4
- import { ImageDecoder } from './../../graphics/images/image-decoder';
5
- import { ByteArray } from './../../graphics/images/byte-array';
6
- import { DictionaryProperties } from './../../input-output/pdf-dictionary-properties';
7
- import { PdfImage } from './pdf-image';
8
- /**
9
- * The 'PdfBitmap' contains methods and properties to handle the Bitmap images.
10
- * ```typescript
11
- * // create a new PDF document.
12
- * let document : PdfDocument = new PdfDocument();
13
- * // add a page to the document.
14
- * let page1 : PdfPage = document.pages.add();
15
- * // base64 string of an image
16
- * let imageString : string = '/9j/3+2w7em7HzY/KiijFw … 1OEYRUYrQ45yc5OUtz/9k=';
17
- * // load the image from the base64 string of original image.
18
- * let image : PdfBitmap = new PdfBitmap(imageString);
19
- * // draw the image
20
- * page1.graphics.drawImage(image, new RectangleF({x : 10, y : 10}, {width : 200, height : 200}));
21
- * // save the document.
22
- * document.save('output.pdf');
23
- * // destroy the document
24
- * document.destroy();
25
- * ```
26
- */
27
- export class PdfBitmap extends PdfImage {
28
- //Fields
29
- /**
30
- * Specifies the `status` of an image.
31
- * @default true.
32
- * @hidden
33
- * @private
34
- */
35
- private imageStatus : boolean = true;
36
- /**
37
- * Internal variable for accessing fields from `DictionryProperties` class.
38
- * @hidden
39
- * @private
40
- */
41
- private dictionaryProperties : DictionaryProperties = new DictionaryProperties();
42
- /**
43
- * `Type` of an image.
44
- * @hidden
45
- * @private
46
- */
47
- public checkImageType : number;
48
- //Properties
49
- /**
50
- * Object to store `decoder` of an image.
51
- * @hidden
52
- * @private
53
- */
54
- public decoder : ImageDecoder;
55
- /**
56
- * `Load image`.
57
- * @hidden
58
- * @private
59
- */
60
- private loadImage(encodedString : string) : void {
61
- let task : void = this.initializeAsync(encodedString);
62
- }
63
- /**
64
- * Create an instance for `PdfBitmap` class.
65
- * @param encodedString Base64 string of an image.
66
- * ```typescript
67
- * // create a new PDF document.
68
- * let document : PdfDocument = new PdfDocument();
69
- * // add a page to the document.
70
- * let page1 : PdfPage = document.pages.add();
71
- * // base64 string of an image
72
- * let imageString : string = '/9j/3+2w7em7HzY/KiijFw … 1OEYRUYrQ45yc5OUtz/9k=';
73
- * //
74
- * // load the image from the base64 string of original image.
75
- * let image : PdfBitmap = new PdfBitmap(imageString);
76
- * //
77
- * // draw the image
78
- * page1.graphics.drawImage(image, new RectangleF({x : 10, y : 10}, {width : 200, height : 200}));
79
- * // save the document.
80
- * document.save('output.pdf');
81
- * // destroy the document
82
- * document.destroy();
83
- * ```
84
- */
85
- public constructor(encodedString : string) {
86
- super();
87
- this.loadImage(encodedString);
88
- }
89
- /**
90
- * `Initialize` image parameters.
91
- * @private
92
- */
93
- public initializeAsync(encodedString : string) : void {
94
- let byteArray : ByteArray = new ByteArray(encodedString.length);
95
- byteArray.writeFromBase64String(encodedString);
96
- this.decoder = new ImageDecoder(byteArray);
97
- this.height = this.decoder.height;
98
- this.width = this.decoder.width;
99
- // FrameCount = BitmapImageDecoder.FrameCount;
100
- this.bitsPerComponent = this.decoder.bitsPerComponent;
101
- }
102
- /**
103
- * `Saves` the image into stream.
104
- * @private
105
- */
106
- public save() : void {
107
- this.imageStatus = true;
108
- this.imageStream = this.decoder.getImageDictionary();
109
- }
110
- }