@syncfusion/ej2-pdf-export 20.2.36 → 20.2.38

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