@syncfusion/ej2-pdf-export 24.1.41 → 24.1.47

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 +8 -0
  2. package/dist/ej2-pdf-export.min.js +2 -2
  3. package/dist/ej2-pdf-export.umd.min.js +2 -2
  4. package/dist/ej2-pdf-export.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-pdf-export.es2015.js +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 +5 -5
  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,474 +0,0 @@
1
- /**
2
- * PdfStringFormat.ts class for EJ2-PDF
3
- */
4
- import { PdfTextAlignment, PdfVerticalAlignment, PdfTextDirection } from './../../graphics/enum';
5
- import { PdfSubSuperScript, PdfWordWrapType } from './../../graphics/fonts/enum';
6
- /**
7
- * `PdfStringFormat` class represents the text layout information on PDF.
8
- * ```typescript
9
- * // create a new PDF document
10
- * let document : PdfDocument = new PdfDocument();
11
- * // add a pages to the document
12
- * let page1 : PdfPage = document.pages.add();
13
- * // set font
14
- * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
15
- * // set brush
16
- * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
17
- * //
18
- * // set the format for string
19
- * let stringFormat : PdfStringFormat = new PdfStringFormat();
20
- * // set the text alignment
21
- * stringFormat.alignment = PdfTextAlignment.Center;
22
- * // set the vertical alignment
23
- * stringFormat.lineAlignment = PdfVerticalAlignment.Middle;
24
- * //
25
- * // draw the text
26
- * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
27
- * // save the document
28
- * document.save('output.pdf');
29
- * // destroy the document
30
- * document.destroy();
31
- * ```
32
- */
33
- export class PdfStringFormat {
34
- // Fields
35
- /**
36
- * `Horizontal text alignment`.
37
- * @private
38
- */
39
- private textAlignment : PdfTextAlignment;
40
- /**
41
- * `Vertical text alignment`.
42
- * @private
43
- */
44
- private verticalAlignment : PdfVerticalAlignment;
45
- /**
46
- * Indicates whether `RTL` should be checked.
47
- * @private
48
- */
49
- private isRightToLeft : boolean;
50
- /**
51
- * `Character spacing` value.
52
- * @private
53
- */
54
- private internalCharacterSpacing : number;
55
- /**
56
- * `Word spacing` value.
57
- * @private
58
- */
59
- private internalWordSpacing : number;
60
- /**
61
- * Text `leading`.
62
- * @private
63
- */
64
- private leading : number;
65
- /**
66
- * Shows if the text should be a part of the current `clipping` path.
67
- * @private
68
- */
69
- private clip : boolean;
70
- /**
71
- * Indicates whether the text is in `subscript or superscript` mode.
72
- * @private
73
- */
74
- private pdfSubSuperScript : PdfSubSuperScript;
75
- /**
76
- * The `scaling factor` of the text being drawn.
77
- * @private
78
- */
79
- private scalingFactor : number = 100.0;
80
- /**
81
- * Indent of the `first line` in the text.
82
- * @private
83
- */
84
- private initialLineIndent : number;
85
- /**
86
- * Indent of the `first line` in the paragraph.
87
- * @private
88
- */
89
- private internalParagraphIndent : number;
90
- /**
91
- * Indicates whether entire lines are laid out in the formatting rectangle only or not[`line limit`].
92
- * @private
93
- */
94
- private internalLineLimit : boolean;
95
- /**
96
- * Indicates whether spaces at the end of the line should be left or removed[`measure trailing spaces`].
97
- * @private
98
- */
99
- private trailingSpaces : boolean;
100
- /**
101
- * Indicates whether the text region should be `clipped` or not.
102
- * @private
103
- */
104
- private isNoClip : boolean;
105
- /**
106
- * Indicates text `wrapping` type.
107
- * @private
108
- */
109
- public wordWrapType : PdfWordWrapType = PdfWordWrapType.Word;
110
- private direction : PdfTextDirection ;
111
- //Constructors
112
- /**
113
- * Initializes a new instance of the `PdfStringFormat` class.
114
- * @private
115
- */
116
- public constructor()
117
- /**
118
- * Initializes a new instance of the `PdfStringFormat` class with horizontal alignment of a text.
119
- * @private
120
- */
121
- public constructor(alignment : PdfTextAlignment)
122
- /**
123
- * Initializes a new instance of the `PdfStringFormat` class with column format.
124
- * @private
125
- */
126
- public constructor(columnFormat : string)
127
- /**
128
- * Initializes a new instance of the `PdfStringFormat` class with horizontal and vertical alignment.
129
- * @private
130
- */
131
- public constructor(alignment : PdfTextAlignment, lineAlignment : PdfVerticalAlignment)
132
- public constructor(arg1? : PdfTextAlignment|string, arg2? : PdfVerticalAlignment) {
133
- this.internalLineLimit = true;
134
- this.wordWrapType = PdfWordWrapType.Word;
135
- if ((typeof arg1 !== 'undefined') && (typeof arg1 !== 'string') ) {
136
- this.textAlignment = arg1;
137
- }
138
- if (typeof arg2 !== 'undefined') {
139
- this.verticalAlignment = arg2;
140
- }
141
- }
142
- //Properties
143
- /**
144
- * Gets or sets the `horizontal` text alignment
145
- * ```typescript
146
- * // create a new PDF document
147
- * let document : PdfDocument = new PdfDocument();
148
- * // add a pages to the document
149
- * let page1 : PdfPage = document.pages.add();
150
- * // set font
151
- * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
152
- * // set brush
153
- * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
154
- * //
155
- * // set the format for string
156
- * let stringFormat : PdfStringFormat = new PdfStringFormat();
157
- * // set the text alignment
158
- * stringFormat.alignment = PdfTextAlignment.Center;
159
- * //
160
- * // draw the text
161
- * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
162
- * // save the document
163
- * document.save('output.pdf');
164
- * // destroy the document
165
- * document.destroy();
166
- * ```
167
- */
168
- public get alignment() : PdfTextAlignment {
169
- return this.textAlignment;
170
- }
171
- public set alignment(value : PdfTextAlignment) {
172
- this.textAlignment = value;
173
- }
174
- public get textDirection() : PdfTextDirection {
175
- return this.direction;
176
- }
177
- public set textDirection(value : PdfTextDirection) {
178
- this.direction = value;
179
- }
180
- /**
181
- * Gets or sets the `vertical` text alignment.
182
- * ```typescript
183
- * // create a new PDF document
184
- * let document : PdfDocument = new PdfDocument();
185
- * // add a pages to the document
186
- * let page1 : PdfPage = document.pages.add();
187
- * // set font
188
- * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
189
- * // set brush
190
- * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
191
- * //
192
- * // set the format for string
193
- * let stringFormat : PdfStringFormat = new PdfStringFormat();
194
- * // set the vertical alignment
195
- * stringFormat.lineAlignment = PdfVerticalAlignment.Middle;
196
- * //
197
- * // draw the text
198
- * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
199
- * // save the document
200
- * document.save('output.pdf');
201
- * // destroy the document
202
- * document.destroy();
203
- * ```
204
- */
205
- public get lineAlignment() : PdfVerticalAlignment {
206
- if (typeof this.verticalAlignment === 'undefined' || this.verticalAlignment == null) {
207
- return PdfVerticalAlignment.Top;
208
- } else {
209
- return this.verticalAlignment;
210
- }
211
- }
212
- public set lineAlignment(value : PdfVerticalAlignment) {
213
- this.verticalAlignment = value;
214
- }
215
- /**
216
- * Gets or sets the value that indicates text `direction` mode.
217
- * @private
218
- */
219
- public get rightToLeft() : boolean {
220
- if (typeof this.isRightToLeft === 'undefined' || this.isRightToLeft == null) {
221
- return false;
222
- } else {
223
- return this.isRightToLeft;
224
- }
225
- }
226
- public set rightToLeft(value : boolean) {
227
- this.isRightToLeft = value;
228
- }
229
- /**
230
- * Gets or sets value that indicates a `size` among the characters in the text.
231
- * ```typescript
232
- * // create a new PDF document
233
- * let document : PdfDocument = new PdfDocument();
234
- * // add a pages to the document
235
- * let page1 : PdfPage = document.pages.add();
236
- * // set font
237
- * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
238
- * // set brush
239
- * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
240
- * //
241
- * // set the format for string
242
- * let stringFormat : PdfStringFormat = new PdfStringFormat();
243
- * // set character spacing
244
- * stringFormat.characterSpacing = 10;
245
- * //
246
- * // draw the text
247
- * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
248
- * // save the document
249
- * document.save('output.pdf');
250
- * // destroy the document
251
- * document.destroy();
252
- * ```
253
- */
254
- public get characterSpacing() : number {
255
- if (typeof this.internalCharacterSpacing === 'undefined' || this.internalCharacterSpacing == null) {
256
- return 0;
257
- } else {
258
- return this.internalCharacterSpacing;
259
- }
260
- }
261
- public set characterSpacing(value : number) {
262
- this.internalCharacterSpacing = value;
263
- }
264
- /**
265
- * Gets or sets value that indicates a `size` among the words in the text.
266
- * ```typescript
267
- * // create a new PDF document
268
- * let document : PdfDocument = new PdfDocument();
269
- * // add a pages to the document
270
- * let page1 : PdfPage = document.pages.add();
271
- * // set font
272
- * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
273
- * // set brush
274
- * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
275
- * //
276
- * // set the format for string
277
- * let stringFormat : PdfStringFormat = new PdfStringFormat();
278
- * // set word spacing
279
- * stringFormat.wordSpacing = 10;
280
- * //
281
- * // draw the text
282
- * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(10, 10), stringFormat);
283
- * // save the document
284
- * document.save('output.pdf');
285
- * // destroy the document
286
- * document.destroy();
287
- * ```
288
- */
289
- public get wordSpacing() : number {
290
- if (typeof this.internalWordSpacing === 'undefined' || this.internalWordSpacing == null) {
291
- return 0;
292
- } else {
293
- return this.internalWordSpacing;
294
- }
295
- }
296
- public set wordSpacing(value : number) {
297
- this.internalWordSpacing = value;
298
- }
299
- /**
300
- * Gets or sets value that indicates the `vertical distance` between the baselines of adjacent lines of text.
301
- * ```typescript
302
- * // create a new PDF document
303
- * let document : PdfDocument = new PdfDocument();
304
- * // add a pages to the document
305
- * let page1 : PdfPage = document.pages.add();
306
- * // set font
307
- * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
308
- * // set brush
309
- * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
310
- * // set string
311
- * let text : string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
312
- * incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitati';
313
- * // set rectangle bounds
314
- * let rectangle : RectangleF = new RectangleF({x : 0, y : 0}, {width : 300, height : 100})
315
- * //
316
- * // set the format for string
317
- * let stringFormat : PdfStringFormat = new PdfStringFormat();
318
- * // set line spacing
319
- * stringFormat.lineSpacing = 10;
320
- * //
321
- * // draw the text
322
- * page1.graphics.drawString(text, font, blackBrush, rectangle, stringFormat);
323
- * // save the document
324
- * document.save('output.pdf');
325
- * // destroy the document
326
- * document.destroy();
327
- * ```
328
- */
329
- public get lineSpacing() : number {
330
- if (typeof this.leading === 'undefined' || this.leading == null) {
331
- return 0;
332
- } else {
333
- return this.leading;
334
- }
335
- }
336
- public set lineSpacing(value : number) {
337
- this.leading = value;
338
- }
339
- /**
340
- * Gets or sets a value indicating whether the text is `clipped` or not.
341
- * @private
342
- */
343
- public get clipPath() : boolean {
344
- if (typeof this.clip === 'undefined' || this.clip == null) {
345
- return false;
346
- } else {
347
- return this.clip;
348
- }
349
- }
350
- public set clipPath(value : boolean) {
351
- this.clip = value;
352
- }
353
- /**
354
- * Gets or sets value indicating whether the text is in `subscript or superscript` mode.
355
- * @private
356
- */
357
- public get subSuperScript() : PdfSubSuperScript {
358
- if (typeof this.pdfSubSuperScript === 'undefined' || this.pdfSubSuperScript == null) {
359
- return PdfSubSuperScript.None;
360
- } else {
361
- return this.pdfSubSuperScript;
362
- }
363
- }
364
- public set subSuperScript(value : PdfSubSuperScript) {
365
- this.pdfSubSuperScript = value;
366
- }
367
- /**
368
- * Gets or sets the `indent` of the first line in the paragraph.
369
- * @private
370
- */
371
- public get paragraphIndent() : number {
372
- if (typeof this.internalParagraphIndent === 'undefined' || this.internalParagraphIndent == null) {
373
- return 0;
374
- } else {
375
- return this.internalParagraphIndent;
376
- }
377
- }
378
- public set paragraphIndent(value : number) {
379
- this.internalParagraphIndent = value;
380
- this.firstLineIndent = value;
381
- }
382
- /**
383
- * Gets or sets a value indicating whether [`line limit`].
384
- * @private
385
- */
386
- public get lineLimit() : boolean {
387
- return this.internalLineLimit;
388
- }
389
- public set lineLimit(value : boolean) {
390
- this.internalLineLimit = value;
391
- }
392
- /**
393
- * Gets or sets a value indicating whether [`measure trailing spaces`].
394
- * @private
395
- */
396
- public get measureTrailingSpaces() : boolean {
397
- if (typeof this.trailingSpaces === 'undefined' || this.trailingSpaces == null) {
398
- return false;
399
- } else {
400
- return this.trailingSpaces;
401
- }
402
- }
403
- public set measureTrailingSpaces(value : boolean) {
404
- this.trailingSpaces = value;
405
- }
406
- /**
407
- * Gets or sets a value indicating whether [`no clip`].
408
- * @private
409
- */
410
- public get noClip() : boolean {
411
- if (typeof this.isNoClip === 'undefined' || this.isNoClip == null) {
412
- return false;
413
- } else {
414
- return this.isNoClip;
415
- }
416
- }
417
- public set noClip(value : boolean) {
418
- this.isNoClip = value;
419
- }
420
- /**
421
- * Gets or sets value indicating type of the text `wrapping`.
422
- * @private
423
- */
424
- public get wordWrap() : PdfWordWrapType {
425
- // if (typeof this.wrapType === 'undefined' || this.wrapType == null) {
426
- // return PdfWordWrapType.Word;
427
- // } else {
428
- return this.wordWrapType;
429
- // }
430
- }
431
- public set wordWrap(value : PdfWordWrapType) {
432
- this.wordWrapType = value;
433
- }
434
- /**
435
- * Gets or sets the `scaling factor`.
436
- * @private
437
- */
438
- public get horizontalScalingFactor() : number {
439
- // if (typeof this.scalingFactor === 'undefined' || this.scalingFactor == null) {
440
- // return 100;
441
- // } else {
442
- return this.scalingFactor;
443
- // }
444
- }
445
- public set horizontalScalingFactor(value : number) {
446
- if (value <= 0) {
447
- throw new Error('ArgumentOutOfRangeException:The scaling factor cant be less of equal to zero, ScalingFactor');
448
- }
449
- this.scalingFactor = value;
450
- }
451
- /**
452
- * Gets or sets the `indent` of the first line in the text.
453
- * @private
454
- */
455
- public get firstLineIndent() : number {
456
- if (typeof this.initialLineIndent === 'undefined' || this.initialLineIndent == null) {
457
- return 0;
458
- } else {
459
- return this.initialLineIndent;
460
- }
461
- }
462
- public set firstLineIndent(value : number) {
463
- this.initialLineIndent = value;
464
- }
465
- /**
466
- * `Clones` the object.
467
- * @private
468
- */
469
- //IClonable implementation
470
- public clone() : Object {
471
- let format : PdfStringFormat = this;
472
- return format;
473
- }
474
- }
@@ -1,165 +0,0 @@
1
- /**
2
- * PdfTrueTypeFont.ts class for EJ2-PDF
3
- */
4
- import { UnicodeTrueTypeFont } from './unicode-true-type-font';
5
- import { PdfFont } from './pdf-font';
6
- import { PdfStringFormat } from './pdf-string-format';
7
- import { PdfFontStyle } from './enum';
8
- import { IPdfCache } from './../../../interfaces/i-pdf-cache';
9
- import { PdfDocument } from './../../document/pdf-document';
10
- import { IPdfPrimitive } from './../../../interfaces/i-pdf-primitives';
11
- import { PdfFontMetrics } from './pdf-font-metrics';
12
- import { PdfTextDirection } from './../enum';
13
- import { RtlRenderer} from './rtl-renderer';
14
- import { TtfReader } from './ttf-reader';
15
- import { TtfGlyphInfo } from './ttf-glyph-info';
16
- //https://www.giftofspeed.com/base64-encoder/
17
- export class PdfTrueTypeFont extends PdfFont {
18
- // Fields
19
- /**
20
- * Internal font object.
21
- * @private
22
- */
23
- public fontInternal : UnicodeTrueTypeFont;
24
- /**
25
- * Indicates whether the font is embedded or not.
26
- * @private
27
- */
28
- public isEmbedFont : boolean = false;
29
- /**
30
- * Indicates whether the font is unicoded or not.
31
- * @private
32
- */
33
- public isUnicode : boolean = true;
34
- //Constructors
35
- /**
36
- * Initializes a new instance of the `PdfTrueTypeFont` class.
37
- * @private
38
- */
39
- public constructor(base64String : string, size : number)
40
- public constructor(base64String : string, size : number, style : PdfFontStyle)
41
- public constructor(base64String : string, size : number, style ?: PdfFontStyle) {
42
- super(size);
43
- if (style !== undefined) {
44
- this.createFontInternal(base64String, style);
45
- } else {
46
- this.createFontInternal(base64String, PdfFontStyle.Regular);
47
- }
48
- }
49
- protected equalsToFont(font : PdfFont) : boolean {
50
- let result : boolean = false;
51
- //let result : boolean = this.fontInternal.equalsToFont(font);
52
- return result;
53
- }
54
- public getLineWidth(line : string, format : PdfStringFormat) : number {
55
- let width : number = 0;
56
- if (format !== null && typeof format !== 'undefined' && format.textDirection !== PdfTextDirection.None) {
57
- let returnValue : {success : boolean , width : number } = this.getUnicodeLineWidth(line, /*out*/ width, format);
58
- width = returnValue.width;
59
- } else {
60
- width = this.fontInternal.getLineWidth(line);
61
- }
62
- let size : number = this.metrics.getSize(format);
63
- width *= (PdfFont.charSizeMultiplier * size);
64
- width = this.applyFormatSettings(line, format, width);
65
- return width;
66
- }
67
- /**
68
- * Returns width of the char.
69
- */
70
- public getCharWidth(charCode : string, format : PdfStringFormat) : number {
71
- let codeWidth : number = this.fontInternal.getCharWidth(charCode);
72
- let size : number = this.metrics.getSize(format);
73
- codeWidth *= (0.001 * size);
74
-
75
- return codeWidth;
76
- }
77
- //Implementation
78
- public createFontInternal(base64String : string, style : PdfFontStyle) : void {
79
- this.fontInternal = new UnicodeTrueTypeFont(base64String, this.size);
80
- this.calculateStyle(style);
81
- this.initializeInternals();
82
- }
83
- private calculateStyle(style : PdfFontStyle) : void {
84
- let iStyle : number = this.fontInternal.ttfMetrics.macStyle;
85
- if ((style & PdfFontStyle.Underline) !== 0) {
86
- iStyle |= PdfFontStyle.Underline;
87
- }
88
- if ((style & PdfFontStyle.Strikeout) !== 0) {
89
- iStyle |= PdfFontStyle.Strikeout;
90
- }
91
- this.setStyle(iStyle);
92
- }
93
- private initializeInternals() : void {
94
- let equalFont : IPdfCache = null;
95
- if (PdfDocument.enableCache) {
96
- // Search for the similar fonts.
97
- equalFont = PdfDocument.cache.search(this);
98
- }
99
- let internals : IPdfPrimitive = null;
100
- // There is not equal font in the cache.
101
- if (equalFont !== null && equalFont !== undefined) {
102
- // Get the settings from the cached font.
103
- internals = (equalFont as IPdfCache).getInternals();
104
- let metrics : PdfFontMetrics = (equalFont as PdfFont).metrics;
105
- metrics = (metrics as PdfFontMetrics).clone();
106
- metrics.size = this.size;
107
- this.metrics = metrics;
108
- this.fontInternal = (equalFont as PdfTrueTypeFont).fontInternal;
109
- } else {
110
- if (equalFont == null) {
111
- if (this.fontInternal instanceof UnicodeTrueTypeFont) {
112
- (this.fontInternal as UnicodeTrueTypeFont).isEmbed = this.isEmbedFont;
113
- }
114
- this.fontInternal.createInternals();
115
- internals = this.fontInternal.getInternals();
116
- this.metrics = this.fontInternal.metrics;
117
- }
118
- }
119
- this.metrics.isUnicodeFont = true;
120
- this.setInternals(internals);
121
- //this.ttfReader = (this.fontInternal as UnicodeTrueTypeFont).ttfReader;
122
- }
123
- /**
124
- * Stores used symbols.
125
- */
126
- public setSymbols(text : string) : void {
127
- let internalFont : UnicodeTrueTypeFont = this.fontInternal as UnicodeTrueTypeFont;
128
- if (internalFont != null) {
129
- internalFont.setSymbols(text);
130
- }
131
- }
132
- /**
133
- * Property
134
- *
135
- */
136
- public get Unicode() : boolean {
137
- return this.isUnicode;
138
- }
139
- // public get Font() : UnicodeTrueTypeFont {
140
- // return this.fontInternal as UnicodeTrueTypeFont;
141
- // }
142
- private getUnicodeLineWidth(line : string, /*out*/ width : number , format : PdfStringFormat) : { success : boolean, width : number } {
143
- // if (line == null) {
144
- // throw new Error('ArgumentNullException : line');
145
- // }
146
- width = 0;
147
- let glyphIndices : Uint16Array = null;
148
- let rtlRender : RtlRenderer = new RtlRenderer();
149
- /* tslint:disable-next-line:max-line-length */
150
- let result : { success : boolean, glyphs : Uint16Array } = rtlRender.getGlyphIndex(line, this, (format.textDirection === PdfTextDirection.RightToLeft) ? true : false, /*out*/ glyphIndices, true);
151
- let resultGlyph : boolean = result.success;
152
- glyphIndices = result.glyphs;
153
- if (resultGlyph && glyphIndices !== null) {
154
- let ttfReader : TtfReader = (this.fontInternal as UnicodeTrueTypeFont).ttfReader;
155
- for (let i : number = 0, len : number = glyphIndices.length; i < len; i++) {
156
- let glyphIndex : number = glyphIndices[i];
157
- let glyph : TtfGlyphInfo = ttfReader.getGlyph(glyphIndex);
158
- if (glyph !== null && typeof glyph !== 'undefined') {
159
- width += glyph.width;
160
- }
161
- }
162
- }
163
- return { success : resultGlyph, width : width };
164
- }
165
- }