@syncfusion/ej2-pdf-export 24.1.41 → 24.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/ej2-pdf-export.min.js +2 -2
  3. package/dist/ej2-pdf-export.umd.min.js +2 -2
  4. package/dist/ej2-pdf-export.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-pdf-export.es2015.js +157 -28
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +157 -28
  8. package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
  9. package/dist/global/ej2-pdf-export.min.js +2 -2
  10. package/dist/global/ej2-pdf-export.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +6 -6
  13. package/src/implementation/graphics/pdf-graphics.d.ts +35 -0
  14. package/src/implementation/graphics/pdf-graphics.js +157 -29
  15. package/dist/ts/implementation/actions/action.ts +0 -76
  16. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  17. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  18. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  19. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  20. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  21. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  22. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  23. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  24. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  25. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  26. package/dist/ts/implementation/collections/utils.ts +0 -38
  27. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  28. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  29. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  30. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  31. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  32. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  33. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  34. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  35. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  36. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  37. package/dist/ts/implementation/document/pdf-catalog.ts +0 -65
  38. package/dist/ts/implementation/document/pdf-document-base.ts +0 -180
  39. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  40. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  41. package/dist/ts/implementation/document/pdf-viewer-preferences.ts +0 -578
  42. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  43. package/dist/ts/implementation/general/enum.ts +0 -21
  44. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  45. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -63
  46. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  47. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  48. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  49. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  50. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  51. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  52. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  53. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  54. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  55. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  56. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  57. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  58. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  59. package/dist/ts/implementation/graphics/constants.ts +0 -31
  60. package/dist/ts/implementation/graphics/enum.ts +0 -413
  61. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  62. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  63. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  64. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  65. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  66. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  67. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  68. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  69. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  70. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  71. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  72. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  73. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  74. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  75. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  76. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  77. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  78. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  79. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  80. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  81. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  82. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  83. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  84. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  85. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  86. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  87. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  88. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  89. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  90. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  91. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  92. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  93. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  94. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  95. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  96. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  97. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  98. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  99. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  100. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  101. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  102. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  103. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  104. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  105. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  106. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  107. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  108. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -439
  109. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  110. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  111. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  112. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2429
  113. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  114. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  115. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  116. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  117. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  118. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  119. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  120. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  121. package/dist/ts/implementation/input-output/enum.ts +0 -16
  122. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  123. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -571
  124. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  125. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  126. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  127. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  128. package/dist/ts/implementation/pages/enum.ts +0 -201
  129. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  130. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  131. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  132. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  133. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  134. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  135. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  136. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -663
  137. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  138. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  139. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  140. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  141. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  142. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  143. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  144. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  145. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  146. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  147. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  148. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -306
  149. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  150. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
  151. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1193
  152. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  153. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
  154. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
  155. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  156. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  157. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  158. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  159. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  160. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  161. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  162. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  163. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  164. package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
@@ -1,681 +0,0 @@
1
- /**
2
- * PdfStreamWriter.ts class for EJ2-PDF
3
- */
4
- import { IPdfWriter } from './../../interfaces/i-pdf-writer';
5
- import { PdfStream } from './../primitives/pdf-stream';
6
- import { Operators } from './pdf-operators';
7
- import { PdfNumber } from './../primitives/pdf-number';
8
- import { PointF, RectangleF } from './../drawing/pdf-drawing';
9
- import { TextRenderingMode, PdfLineCap, PdfLineJoin, PdfColorSpace } from './../graphics/enum';
10
- import { PdfString } from './../primitives/pdf-string';
11
- import { PdfName } from './../primitives/pdf-name';
12
- import { PdfFont } from './../graphics/fonts/pdf-font';
13
- import { PdfTransformationMatrix } from './../graphics/pdf-transformation-matrix';
14
- import { PdfColor } from './../graphics/pdf-color';
15
- import { PdfArray } from './../primitives/pdf-array';
16
- import { PdfDocument } from './../document/pdf-document';
17
- /**
18
- * Helper class to `write PDF graphic streams` easily.
19
- * @private
20
- */
21
- export class PdfStreamWriter implements IPdfWriter {
22
- //Fields
23
- /**
24
- * The PDF `stream` where the data should be write into.
25
- * @private
26
- */
27
- private stream : PdfStream;
28
- /**
29
- * Initialize an instance of `PdfStreamWriter` class.
30
- * @private
31
- */
32
- public constructor(stream : PdfStream) {
33
- if (stream == null) {
34
- throw new Error('ArgumentNullException:stream');
35
- }
36
- this.stream = stream;
37
- }
38
- //Implementation
39
- /**
40
- * `Clear` the stream.
41
- * @public
42
- */
43
- public clear() : void {
44
- this.stream.clearStream();
45
- }
46
- /**
47
- * Sets the `graphics state`.
48
- * @private
49
- */
50
- public setGraphicsState(dictionaryName : PdfName) : void
51
- /**
52
- * Sets the `graphics state`.
53
- * @private
54
- */
55
- public setGraphicsState(dictionaryName : string) : void
56
- public setGraphicsState(dictionaryName : PdfName|string) : void {
57
- if (dictionaryName instanceof PdfName) {
58
- this.stream.write(dictionaryName.toString());
59
- this.stream.write(Operators.whiteSpace);
60
- this.writeOperator(Operators.setGraphicsState);
61
- } else {
62
- this.stream.write(Operators.slash);
63
- this.stream.write(dictionaryName);
64
- this.stream.write(Operators.whiteSpace);
65
- this.writeOperator(Operators.setGraphicsState);
66
- }
67
- }
68
- /**
69
- * `Executes the XObject`.
70
- * @private
71
- */
72
- public executeObject(name : PdfName) : void {
73
- this.stream.write(name.toString());
74
- this.stream.write(Operators.whiteSpace);
75
- this.writeOperator(Operators.paintXObject);
76
- this.stream.write(Operators.newLine);
77
- }
78
- /**
79
- * `Closes path object`.
80
- * @private
81
- */
82
- public closePath() : void {
83
- this.writeOperator(Operators.closePath);
84
- }
85
- /**
86
- * `Clips the path`.
87
- * @private
88
- */
89
- public clipPath(useEvenOddRule : boolean) : void {
90
- this.stream.write(Operators.clipPath);
91
- if (useEvenOddRule) {
92
- this.stream.write(Operators.evenOdd);
93
- }
94
- this.stream.write(Operators.whiteSpace);
95
- this.stream.write(Operators.endPath);
96
- this.stream.write(Operators.newLine);
97
- }
98
- /**
99
- * `Closes, then fills and strokes the path`.
100
- * @private
101
- */
102
- public closeFillStrokePath(useEvenOddRule : boolean) : void {
103
- this.stream.write(Operators.closeFillStrokePath);
104
- if (useEvenOddRule) {
105
- this.stream.write(Operators.evenOdd);
106
- this.stream.write(Operators.newLine);
107
- } else {
108
- this.stream.write(Operators.newLine);
109
- }
110
- }
111
- /**
112
- * `Fills and strokes path`.
113
- * @private
114
- */
115
- public fillStrokePath(useEvenOddRule : boolean) : void {
116
- this.stream.write(Operators.fillStroke);
117
- if (useEvenOddRule) {
118
- this.stream.write(Operators.evenOdd);
119
- this.stream.write(Operators.newLine);
120
- } else {
121
- this.stream.write(Operators.newLine);
122
- }
123
- }
124
- /**
125
- * `Fills path`.
126
- * @private
127
- */
128
- public fillPath(useEvenOddRule : boolean) : void {
129
- this.stream.write(Operators.fill);
130
- if (useEvenOddRule) {
131
- this.stream.write(Operators.evenOdd);
132
- this.stream.write(Operators.newLine);
133
- } else {
134
- this.stream.write(Operators.newLine);
135
- }
136
- }
137
- /**
138
- * `Ends the path`.
139
- * @private
140
- */
141
- public endPath() : void {
142
- this.writeOperator(Operators.n);
143
- }
144
- /**
145
- * `Closes and fills the path`.
146
- * @private
147
- */
148
- public closeFillPath(useEvenOddRule : boolean) : void {
149
- this.writeOperator(Operators.closePath);
150
- this.stream.write(Operators.fill);
151
- if (useEvenOddRule) {
152
- this.stream.write(Operators.evenOdd);
153
- this.stream.write(Operators.newLine);
154
- } else {
155
- this.stream.write(Operators.newLine);
156
- }
157
- }
158
- /**
159
- * `Closes and strokes the path`.
160
- * @private
161
- */
162
- public closeStrokePath() : void {
163
- this.writeOperator(Operators.closeStrokePath);
164
- }
165
- /**
166
- * `Sets the text scaling`.
167
- * @private
168
- */
169
- public setTextScaling(textScaling : number) : void {
170
- this.stream.write(PdfNumber.floatToString(textScaling));
171
- this.stream.write(Operators.whiteSpace);
172
- this.writeOperator(Operators.setTextScaling);
173
- }
174
- /**
175
- * `Strokes path`.
176
- * @private
177
- */
178
- public strokePath() : void {
179
- this.writeOperator(Operators.stroke);
180
- }
181
- /**
182
- * `Restores` the graphics state.
183
- * @private
184
- */
185
- public restoreGraphicsState() : void {
186
- this.writeOperator(Operators.restoreState);
187
- }
188
- /**
189
- * `Saves` the graphics state.
190
- * @private
191
- */
192
- public saveGraphicsState() : void {
193
- this.writeOperator(Operators.saveState);
194
- }
195
- /**
196
- * `Shifts the text to the point`.
197
- * @private
198
- */
199
- public startNextLine() : void
200
- /**
201
- * `Shifts the text to the point`.
202
- * @private
203
- */
204
- public startNextLine(point : PointF) : void
205
- /**
206
- * `Shifts the text to the point`.
207
- * @private
208
- */
209
- public startNextLine(x : number, y : number) : void
210
- public startNextLine(arg1 ?: PointF | number, arg2 ?: number) : void {
211
- if (typeof arg1 === 'undefined') {
212
- this.writeOperator(Operators.goToNextLine);
213
- } else if (arg1 instanceof PointF) {
214
- this.writePoint(arg1);
215
- this.writeOperator(Operators.setCoords);
216
- } else {
217
- this.writePoint(arg1, arg2);
218
- this.writeOperator(Operators.setCoords);
219
- }
220
- }
221
- /**
222
- * Shows the `text`.
223
- * @private
224
- */
225
- public showText(text : PdfString) : void {
226
- this.checkTextParam(text);
227
- this.writeText(text);
228
- this.writeOperator(Operators.setText);
229
- }
230
- /**
231
- * Sets `text leading`.
232
- * @private
233
- */
234
- public setLeading(leading : number) : void {
235
- this.stream.write(PdfNumber.floatToString(leading));
236
- this.stream.write(Operators.whiteSpace);
237
- this.writeOperator(Operators.setTextLeading);
238
- }
239
- /**
240
- * `Begins the path`.
241
- * @private
242
- */
243
- public beginPath(x : number, y : number) : void {
244
- this.writePoint(x, y);
245
- this.writeOperator(Operators.beginPath);
246
- }
247
- /**
248
- * `Begins text`.
249
- * @private
250
- */
251
- public beginText() : void {
252
- this.writeOperator(Operators.beginText);
253
- }
254
- /**
255
- * `Ends text`.
256
- * @private
257
- */
258
- public endText() : void {
259
- this.writeOperator(Operators.endText);
260
- }
261
- /**
262
- * `Appends the rectangle`.
263
- * @private
264
- */
265
- public appendRectangle(rectangle : RectangleF) : void
266
- /**
267
- * `Appends the rectangle`.
268
- * @private
269
- */
270
- public appendRectangle(x : number, y : number, width : number, height : number) : void
271
- public appendRectangle(arg1 : number|RectangleF, arg2 ?: number, arg3 ?: number, arg4 ?: number) : void {
272
- if (arg1 instanceof RectangleF) {
273
- this.appendRectangle(arg1.x, arg1.y, arg1.width, arg1.height);
274
- } else {
275
- this.writePoint(arg1 as number, arg2);
276
- this.writePoint(arg3, arg4);
277
- this.writeOperator(Operators.appendRectangle);
278
- }
279
- }
280
- /**
281
- * `Appends a line segment`.
282
- * @private
283
- */
284
- public appendLineSegment(point : PointF) : void
285
- /**
286
- * `Appends a line segment`.
287
- * @private
288
- */
289
- public appendLineSegment(x : number, y : number) : void
290
- public appendLineSegment(arg1 : number | PointF, arg2 ?: number) : void {
291
- if (arg1 instanceof PointF) {
292
- this.appendLineSegment(arg1.x, arg1.y);
293
- } else {
294
- this.writePoint(arg1, arg2);
295
- this.writeOperator(Operators.appendLineSegment);
296
- }
297
- }
298
- /**
299
- * Sets the `text rendering mode`.
300
- * @private
301
- */
302
- public setTextRenderingMode(renderingMode : TextRenderingMode) : void {
303
- this.stream.write((<number>renderingMode).toString());
304
- this.stream.write(Operators.whiteSpace);
305
- this.writeOperator(Operators.setRenderingMode);
306
- }
307
- /**
308
- * Sets the `character spacing`.
309
- * @private
310
- */
311
- public setCharacterSpacing(charSpacing : number) : void {
312
- this.stream.write(PdfNumber.floatToString(charSpacing));
313
- this.stream.write(Operators.whiteSpace);
314
- this.stream.write(Operators.setCharacterSpace);
315
- this.stream.write(Operators.newLine);
316
- }
317
- /**
318
- * Sets the `word spacing`.
319
- * @private
320
- */
321
- public setWordSpacing(wordSpacing : number) : void {
322
- this.stream.write(PdfNumber.floatToString(wordSpacing));
323
- this.stream.write(Operators.whiteSpace);
324
- this.writeOperator(Operators.setWordSpace);
325
- }
326
- // public showNextLineText(text : number[], hex : boolean) : void
327
- /**
328
- * Shows the `next line text`.
329
- * @private
330
- */
331
- public showNextLineText(text : string, hex : boolean) : void
332
- /**
333
- * Shows the `next line text`.
334
- * @private
335
- */
336
- public showNextLineText(text : PdfString) : void
337
- public showNextLineText(arg1 ?: PdfString|string , arg2 ?: boolean) : void {
338
- if (arg1 instanceof PdfString) {
339
- this.checkTextParam(arg1);
340
- this.writeText(arg1);
341
- this.writeOperator(Operators.setTextOnNewLine);
342
- } else {
343
- this.checkTextParam(arg1);
344
- this.writeText(arg1, arg2);
345
- this.writeOperator(Operators.setTextOnNewLine);
346
- }
347
- }
348
- /**
349
- * Set the `color space`.
350
- * @private
351
- */
352
- public setColorSpace(name : string, forStroking : boolean) : void
353
- /**
354
- * Set the `color space`.
355
- * @private
356
- */
357
- public setColorSpace(name : PdfName, forStroking : boolean) : void
358
- public setColorSpace(arg1 : PdfName|string, arg2 : boolean|PdfName) : void {
359
- if (arg1 instanceof PdfName && typeof arg2 === 'boolean') {
360
- let temparg1 : PdfName = arg1 as PdfName;
361
- let temparg2 : boolean = arg2 as boolean;
362
- // if (temparg1 == null) {
363
- // throw new Error('ArgumentNullException:name');
364
- // }
365
- let op : string = (temparg2) ? Operators.selectcolorspaceforstroking : Operators.selectcolorspacefornonstroking;
366
- this.stream.write(temparg1.toString());
367
- this.stream.write(Operators.whiteSpace);
368
- this.stream.write(op);
369
- this.stream.write(Operators.newLine);
370
- } else {
371
- let temparg1 : string = arg1 as string;
372
- let temparg2 : boolean = arg2 as boolean;
373
- this.setColorSpace(new PdfName(temparg1), temparg2);
374
- }
375
- }
376
- /**
377
- * Modifies current `transformation matrix`.
378
- * @private
379
- */
380
- public modifyCtm(matrix : PdfTransformationMatrix) : void {
381
- if (matrix == null) {
382
- throw new Error('ArgumentNullException:matrix');
383
- }
384
- this.stream.write(matrix.toString());
385
- this.stream.write(Operators.whiteSpace);
386
- this.writeOperator(Operators.modifyCtm);
387
- }
388
- /**
389
- * Sets `font`.
390
- * @private
391
- */
392
- public setFont(font : PdfFont, name : string, size : number) : void
393
- /**
394
- * Sets `font`.
395
- * @private
396
- */
397
- public setFont(font : PdfFont, name : PdfName, size : number) : void
398
- public setFont(font : PdfFont, name : PdfName|string, size : number) : void {
399
- if (typeof name === 'string') {
400
- this.setFont(font, new PdfName(name), size);
401
- } else {
402
- if (font == null) {
403
- throw new Error('ArgumentNullException:font');
404
- }
405
- this.stream.write(name.toString());
406
- this.stream.write(Operators.whiteSpace);
407
- this.stream.write(PdfNumber.floatToString(size));
408
- this.stream.write(Operators.whiteSpace);
409
- this.writeOperator(Operators.setFont);
410
- }
411
- }
412
- /**
413
- * `Writes the operator`.
414
- * @private
415
- */
416
- private writeOperator(opcode : string) : void {
417
- this.stream.write(opcode);
418
- this.stream.write(Operators.newLine);
419
- }
420
- /**
421
- * Checks the `text param`.
422
- * @private
423
- */
424
- private checkTextParam(text : string) : void
425
- /**
426
- * Checks the `text param`.
427
- * @private
428
- */
429
- private checkTextParam(text : PdfString) : void
430
- private checkTextParam(text : PdfString|string) : void {
431
- if (text == null) {
432
- throw new Error('ArgumentNullException:text');
433
- }
434
- if (typeof text === 'string' && text === '') {
435
- throw new Error('ArgumentException:The text can not be an empty string, text');
436
- }
437
- }
438
- /**
439
- * `Writes the text`.
440
- * @private
441
- */
442
- private writeText(text : string, hex : boolean) : void
443
- /**
444
- * `Writes the text`.
445
- * @private
446
- */
447
- private writeText(text : PdfString) : void
448
- private writeText(arg1 : PdfString|string, arg2 ?: boolean) : void {
449
- if ((arg1 instanceof PdfString) && (typeof arg2 === 'undefined')) {
450
- this.stream.write(arg1.pdfEncode());
451
- } else {
452
- let start : string;
453
- let end : string;
454
- if (arg2) {
455
- start = PdfString.hexStringMark[0];
456
- end = PdfString.hexStringMark[1];
457
- } else {
458
- start = PdfString.stringMark[0];
459
- end = PdfString.stringMark[1];
460
- }
461
- this.stream.write(start);
462
- this.stream.write(arg1 as string);
463
- this.stream.write(end);
464
- }
465
- }
466
- /**
467
- * `Writes the point`.
468
- * @private
469
- */
470
- private writePoint(point : PointF) : void
471
- /**
472
- * `Writes the point`.
473
- * @private
474
- */
475
- private writePoint(x : number, y : number) : void
476
- private writePoint(arg1 : number|PointF, arg2 ?: number) : void {
477
- if ((arg1 instanceof PointF) && (typeof arg2 === 'undefined')) {
478
- this.writePoint(arg1.x, arg1.y);
479
- } else {
480
- let temparg1 : number = arg1 as number;
481
- this.stream.write(PdfNumber.floatToString(temparg1));
482
- this.stream.write(Operators.whiteSpace);
483
- // NOTE: Change Y co-ordinate because we shifted co-ordinate system only.
484
- arg2 = this.updateY(arg2);
485
- this.stream.write(PdfNumber.floatToString(arg2));
486
- this.stream.write(Operators.whiteSpace);
487
- }
488
- }
489
- /**
490
- * `Updates y` co-ordinate.
491
- * @private
492
- */
493
- public updateY(arg : number) : number {
494
- return -arg;
495
- }
496
- /**
497
- * `Writes string` to the file.
498
- * @private
499
- */
500
- public write(string : string) : void {
501
- let builder : string = '';
502
- builder += string;
503
- builder += Operators.newLine;
504
- this.writeOperator(builder);
505
- }
506
- /**
507
- * `Writes comment` to the file.
508
- * @private
509
- */
510
- public writeComment(comment : string) : void {
511
- if (comment != null && comment.length > 0) {
512
- let builder : string = '';
513
- builder += Operators.comment;
514
- builder += Operators.whiteSpace;
515
- builder += comment;
516
- //builder.Append( Operators.NewLine );
517
- this.writeOperator(builder);
518
- } else {
519
- throw new Error('Invalid comment');
520
- }
521
- }
522
- /**
523
- * Sets the `color and space`.
524
- * @private
525
- */
526
- public setColorAndSpace(color : PdfColor, colorSpace : PdfColorSpace, forStroking : boolean) : void {
527
- if (!color.isEmpty) {
528
- // bool test = color is PdfExtendedColor;
529
- this.stream.write(color.toString(colorSpace, forStroking));
530
- this.stream.write(Operators.newLine);
531
- }
532
- }
533
- // public setLineDashPattern(pattern : number[], patternOffset : number) : void
534
- // {
535
- // let pat : PdfArray = new PdfArray(pattern);
536
- // let off : PdfNumber = new PdfNumber(patternOffset);
537
- // this.setLineDashPatternHelper(pat, off);
538
- // }
539
- // private setLineDashPatternHelper(pattern : PdfArray, patternOffset : PdfNumber) : void
540
- // {
541
- // pattern.Save(this);
542
- // this.m_stream.write(Operators.whiteSpace);
543
- // patternOffset.Save(this);
544
- // this.m_stream.write(Operators.whiteSpace);
545
- // this.writeOperator(Operators.setDashPattern);
546
- // }
547
- /**
548
- * Sets the `line dash pattern`.
549
- * @private
550
- */
551
- public setLineDashPattern(pattern : number[], patternOffset : number) : void {
552
- // let pat : PdfArray = new PdfArray(pattern);
553
- // let off : PdfNumber = new PdfNumber(patternOffset);
554
- // this.setLineDashPatternHelper(pat, off);
555
- this.setLineDashPatternHelper(pattern, patternOffset);
556
-
557
- }
558
- /**
559
- * Sets the `line dash pattern`.
560
- * @private
561
- */
562
- private setLineDashPatternHelper(pattern : number[], patternOffset : number) : void {
563
- let tempPattern : string = '[';
564
- if (pattern.length > 1) {
565
- for (let index : number = 0; index < pattern.length; index++) {
566
- if (index === pattern.length - 1) {
567
- tempPattern += pattern[index].toString();
568
- } else {
569
- tempPattern += pattern[index].toString() + ' ';
570
- }
571
- }
572
- }
573
- tempPattern += '] ';
574
- tempPattern += patternOffset.toString();
575
- tempPattern += ' ' + Operators.setDashPattern;
576
- this.stream.write(tempPattern);
577
- this.stream.write(Operators.newLine);
578
- }
579
- /**
580
- * Sets the `miter limit`.
581
- * @private
582
- */
583
- public setMiterLimit(miterLimit : number) : void {
584
- this.stream.write(PdfNumber.floatToString(miterLimit));
585
- this.stream.write(Operators.whiteSpace);
586
- this.writeOperator(Operators.setMiterLimit);
587
- }
588
- /**
589
- * Sets the `width of the line`.
590
- * @private
591
- */
592
- public setLineWidth(width : number) : void {
593
- this.stream.write(PdfNumber.floatToString(width));
594
- this.stream.write(Operators.whiteSpace);
595
- this.writeOperator(Operators.setLineWidth);
596
- }
597
- /**
598
- * Sets the `line cap`.
599
- * @private
600
- */
601
- public setLineCap(lineCapStyle : PdfLineCap) : void {
602
- this.stream.write((lineCapStyle).toString());
603
- this.stream.write(Operators.whiteSpace);
604
- this.writeOperator(Operators.setLineCapStyle);
605
- }
606
- /**
607
- * Sets the `line join`.
608
- * @private
609
- */
610
- public setLineJoin(lineJoinStyle : PdfLineJoin) : void {
611
- this.stream.write((lineJoinStyle).toString());
612
- this.stream.write(Operators.whiteSpace);
613
- this.writeOperator(Operators.setLineJoinStyle);
614
- }
615
- //IPdfWriter members
616
- /**
617
- * Gets or sets the current `position` within the stream.
618
- * @private
619
- */
620
- public get position() : number {
621
- return this.stream.position;
622
- }
623
- /**
624
- * Gets `stream length`.
625
- * @private
626
- */
627
- public get length() : number {
628
- let returnValue : number = 0;
629
- if (this.stream.data.length !== 0 && this.stream.data.length !== -1) {
630
- for (let index : number = 0; index < this.stream.data.length; index++) {
631
- returnValue += this.stream.data[index].length;
632
- }
633
- }
634
- return returnValue;
635
- }
636
- /**
637
- * Gets and Sets the `current document`.
638
- * @private
639
- */
640
- public get document() : PdfDocument {
641
- return null;
642
- }
643
- /**
644
- * `Appends a line segment`.
645
- * @public
646
- */
647
- public appendBezierSegment(arg1 : PointF, arg2 : PointF, arg3 : PointF) : void
648
- public appendBezierSegment(x1 : number, y1 : number, x2 : number, y2 : number, x3 : number, y3 : number ) : void
649
- /* tslint:disable-next-line:max-line-length */
650
- public appendBezierSegment(arg1 : number|PointF, arg2 : number|PointF, arg3 : number|PointF, arg4 ?: number, arg5 ?: number, arg6 ?: number ) : void {
651
- if (arg1 instanceof PointF && arg2 instanceof PointF && arg3 instanceof PointF) {
652
- this.writePoint(arg1.x, arg1.y);
653
- this.writePoint(arg2.x, arg2.y);
654
- this.writePoint(arg3.x, arg3.y);
655
- } else {
656
- this.writePoint(arg1 as number, arg2 as number);
657
- this.writePoint(arg3 as number, arg4 as number);
658
- this.writePoint(arg5 as number, arg6 as number);
659
- }
660
- this.writeOperator(Operators.appendbeziercurve);
661
- }
662
- public setColourWithPattern(colours: number[], patternName: PdfName, forStroking: boolean) : void {
663
- if ((colours != null)) {
664
- let count: number = colours.length;
665
- let i : number = 0;
666
- for (i = 0; i < count; ++i) {
667
- this.stream.write(colours[i].toString());
668
- this.stream.write(Operators.whiteSpace);
669
- }
670
- }
671
- if ((patternName != null)) {
672
- this.stream.write(patternName.toString());
673
- this.stream.write(Operators.whiteSpace);
674
- }
675
- if (forStroking) {
676
- this.writeOperator(Operators.setColorAndPatternStroking);
677
- } else {
678
- this.writeOperator(Operators.setColorAndPattern);
679
- }
680
- }
681
- }