@syncfusion/ej2-pdf-export 23.2.4 → 24.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +0 -18
  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 +6 -1
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +6 -1
  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/dist/ts/implementation/actions/action.ts +76 -0
  13. package/dist/ts/implementation/actions/uri-action.ts +52 -0
  14. package/dist/ts/implementation/annotations/action-link-annotation.ts +43 -0
  15. package/dist/ts/implementation/annotations/annotation-collection.ts +159 -0
  16. package/dist/ts/implementation/annotations/annotation.ts +241 -0
  17. package/dist/ts/implementation/annotations/document-link-annotation.ts +118 -0
  18. package/dist/ts/implementation/annotations/link-annotation.ts +32 -0
  19. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +265 -0
  20. package/dist/ts/implementation/annotations/uri-annotation.ts +86 -0
  21. package/dist/ts/implementation/collections/dictionary.ts +150 -0
  22. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +125 -0
  23. package/dist/ts/implementation/collections/utils.ts +38 -0
  24. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +39 -0
  25. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +108 -0
  26. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +127 -0
  27. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +76 -0
  28. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +37 -0
  29. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +75 -0
  30. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +157 -0
  31. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +82 -0
  32. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +60 -0
  33. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +48 -0
  34. package/dist/ts/implementation/document/pdf-catalog.ts +65 -0
  35. package/dist/ts/implementation/document/pdf-document-base.ts +180 -0
  36. package/dist/ts/implementation/document/pdf-document-template.ts +310 -0
  37. package/dist/ts/implementation/document/pdf-document.ts +342 -0
  38. package/dist/ts/implementation/document/pdf-viewer-preferences.ts +578 -0
  39. package/dist/ts/implementation/drawing/pdf-drawing.ts +218 -0
  40. package/dist/ts/implementation/general/enum.ts +21 -0
  41. package/dist/ts/implementation/general/functions/pdf-function.ts +66 -0
  42. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +63 -0
  43. package/dist/ts/implementation/general/pdf-cache-collection.ts +97 -0
  44. package/dist/ts/implementation/general/pdf-collection.ts +41 -0
  45. package/dist/ts/implementation/general/pdf-destination.ts +170 -0
  46. package/dist/ts/implementation/graphics/brushes/enum.ts +237 -0
  47. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +294 -0
  48. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +68 -0
  49. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +2438 -0
  50. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +295 -0
  51. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +311 -0
  52. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +406 -0
  53. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +290 -0
  54. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +107 -0
  55. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +304 -0
  56. package/dist/ts/implementation/graphics/constants.ts +31 -0
  57. package/dist/ts/implementation/graphics/enum.ts +413 -0
  58. package/dist/ts/implementation/graphics/figures/arc.ts +133 -0
  59. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +59 -0
  60. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +260 -0
  61. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +72 -0
  62. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +34 -0
  63. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +69 -0
  64. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +276 -0
  65. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +205 -0
  66. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +76 -0
  67. package/dist/ts/implementation/graphics/figures/enum.ts +80 -0
  68. package/dist/ts/implementation/graphics/figures/layout-element.ts +132 -0
  69. package/dist/ts/implementation/graphics/figures/path.ts +646 -0
  70. package/dist/ts/implementation/graphics/figures/pdf-template.ts +205 -0
  71. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +108 -0
  72. package/dist/ts/implementation/graphics/figures/text-element.ts +445 -0
  73. package/dist/ts/implementation/graphics/fonts/enum.ts +385 -0
  74. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +248 -0
  75. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +316 -0
  76. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +606 -0
  77. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +243 -0
  78. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +474 -0
  79. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +165 -0
  80. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +958 -0
  81. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +374 -0
  82. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +255 -0
  83. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +617 -0
  84. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +275 -0
  85. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +206 -0
  86. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +18 -0
  87. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +18 -0
  88. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +14 -0
  89. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +26 -0
  90. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +35 -0
  91. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +94 -0
  92. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +56 -0
  93. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +10 -0
  94. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +14 -0
  95. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +106 -0
  96. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +58 -0
  97. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +33 -0
  98. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +22 -0
  99. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +42 -0
  100. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +1254 -0
  101. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +26 -0
  102. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +26 -0
  103. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +577 -0
  104. package/dist/ts/implementation/graphics/images/byte-array.ts +137 -0
  105. package/dist/ts/implementation/graphics/images/image-decoder.ts +439 -0
  106. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +110 -0
  107. package/dist/ts/implementation/graphics/images/pdf-image.ts +132 -0
  108. package/dist/ts/implementation/graphics/pdf-color.ts +478 -0
  109. package/dist/ts/implementation/graphics/pdf-graphics.ts +2429 -0
  110. package/dist/ts/implementation/graphics/pdf-margins.ts +124 -0
  111. package/dist/ts/implementation/graphics/pdf-pen.ts +370 -0
  112. package/dist/ts/implementation/graphics/pdf-resources.ts +300 -0
  113. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +246 -0
  114. package/dist/ts/implementation/graphics/pdf-transparency.ts +93 -0
  115. package/dist/ts/implementation/graphics/unit-convertor.ts +96 -0
  116. package/dist/ts/implementation/input-output/big-endian-writer.ts +121 -0
  117. package/dist/ts/implementation/input-output/cross-table.ts +21 -0
  118. package/dist/ts/implementation/input-output/enum.ts +16 -0
  119. package/dist/ts/implementation/input-output/pdf-cross-table.ts +524 -0
  120. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +571 -0
  121. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +194 -0
  122. package/dist/ts/implementation/input-output/pdf-operators.ts +363 -0
  123. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +681 -0
  124. package/dist/ts/implementation/input-output/pdf-writer.ts +88 -0
  125. package/dist/ts/implementation/pages/enum.ts +201 -0
  126. package/dist/ts/implementation/pages/page-added-event-arguments.ts +39 -0
  127. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +180 -0
  128. package/dist/ts/implementation/pages/pdf-page-base.ts +181 -0
  129. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +348 -0
  130. package/dist/ts/implementation/pages/pdf-page-layer.ts +271 -0
  131. package/dist/ts/implementation/pages/pdf-page-settings.ts +192 -0
  132. package/dist/ts/implementation/pages/pdf-page-size.ts +162 -0
  133. package/dist/ts/implementation/pages/pdf-page-template-element.ts +663 -0
  134. package/dist/ts/implementation/pages/pdf-page.ts +235 -0
  135. package/dist/ts/implementation/pages/pdf-section-collection.ts +187 -0
  136. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +61 -0
  137. package/dist/ts/implementation/pages/pdf-section-templates.ts +96 -0
  138. package/dist/ts/implementation/pages/pdf-section.ts +644 -0
  139. package/dist/ts/implementation/primitives/pdf-array.ts +386 -0
  140. package/dist/ts/implementation/primitives/pdf-boolean.ts +119 -0
  141. package/dist/ts/implementation/primitives/pdf-dictionary.ts +513 -0
  142. package/dist/ts/implementation/primitives/pdf-name.ts +218 -0
  143. package/dist/ts/implementation/primitives/pdf-number.ts +165 -0
  144. package/dist/ts/implementation/primitives/pdf-reference.ts +430 -0
  145. package/dist/ts/implementation/primitives/pdf-stream.ts +306 -0
  146. package/dist/ts/implementation/primitives/pdf-string.ts +397 -0
  147. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +2027 -0
  148. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +1193 -0
  149. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +206 -0
  150. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +470 -0
  151. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +853 -0
  152. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +240 -0
  153. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +424 -0
  154. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +16 -0
  155. package/dist/ts/interfaces/i-pdf-cache.ts +23 -0
  156. package/dist/ts/interfaces/i-pdf-changable.ts +17 -0
  157. package/dist/ts/interfaces/i-pdf-clonable.ts +12 -0
  158. package/dist/ts/interfaces/i-pdf-primitives.ts +45 -0
  159. package/dist/ts/interfaces/i-pdf-true-type-font.ts +48 -0
  160. package/dist/ts/interfaces/i-pdf-wrapper.ts +13 -0
  161. package/dist/ts/interfaces/i-pdf-writer.ts +29 -0
  162. package/package.json +7 -7
  163. package/src/implementation/document/pdf-document-base.js +1 -2
  164. package/src/implementation/graphics/pdf-graphics.js +7 -2
  165. package/src/implementation/graphics/pdf-transformation-matrix.d.ts +1 -1
@@ -0,0 +1,385 @@
1
+ /**
2
+ * public Enum for `PdfFontStyle`.
3
+ * @private
4
+ */
5
+ export enum PdfFontStyle {
6
+ /**
7
+ * Specifies the type of `Regular`.
8
+ * @private
9
+ */
10
+ Regular = 0,
11
+ /**
12
+ * Specifies the type of `Bold`.
13
+ * @private
14
+ */
15
+ Bold = 1,
16
+ /**
17
+ * Specifies the type of `Italic`.
18
+ * @private
19
+ */
20
+ Italic = 2,
21
+ /**
22
+ * Specifies the type of `Underline`.
23
+ * @private
24
+ */
25
+ Underline = 4,
26
+ /**
27
+ * Specifies the type of `Strikeout`.
28
+ * @private
29
+ */
30
+ Strikeout = 8
31
+ }
32
+ /**
33
+ * Specifies the font family from the standard font.
34
+ * ```typescript
35
+ * // create a new PDF document
36
+ * let document : PdfDocument = new PdfDocument();
37
+ * // add a new page to the document
38
+ * let page1 : PdfPage = document.pages.add();
39
+ * // create new standard font
40
+ * let font : PdfStandardFont = new PdfStandardFont(PdfFontFamily.Helvetica, 20);
41
+ * // create black brush
42
+ * let blackBrush : PdfSolidBrush = new PdfSolidBrush(new PdfColor(0, 0, 0));
43
+ * // draw the text
44
+ * page1.graphics.drawString('Hello World', font, blackBrush, new PointF(0, 0));
45
+ * // save the document
46
+ * document.save('output.pdf');
47
+ * ```
48
+ */
49
+ export enum PdfFontFamily {
50
+ /**
51
+ * Specifies the `Helvetica` font.
52
+ */
53
+ Helvetica,
54
+ /**
55
+ * Specifies the `Courier` font.
56
+ */
57
+ Courier,
58
+ /**
59
+ * Specifies the `TimesRoman` font.
60
+ */
61
+ TimesRoman,
62
+ /**
63
+ * Specifies the `Symbol` font.
64
+ */
65
+ Symbol,
66
+ /**
67
+ * Specifies the `ZapfDingbats` font.
68
+ */
69
+ ZapfDingbats,
70
+ }
71
+ /**
72
+ * public Enum for `PdfFontType`.
73
+ * @private
74
+ */
75
+ export enum PdfFontType {
76
+ /**
77
+ * Specifies the type of `Standard`.
78
+ * @private
79
+ */
80
+ Standard,
81
+ /**
82
+ * Specifies the type of `TrueType`.
83
+ * @private
84
+ */
85
+ TrueType,
86
+ /**
87
+ * Specifies the type of `TrueTypeEmbedded`.
88
+ * @private
89
+ */
90
+ TrueTypeEmbedded
91
+ }
92
+ /**
93
+ * public Enum for `PdfWordWrapType`.
94
+ * @private
95
+ */
96
+ export enum PdfWordWrapType {
97
+ /**
98
+ * Specifies the type of `None`.
99
+ * @private
100
+ */
101
+ None,
102
+ /**
103
+ * Specifies the type of `Word`.
104
+ * @private
105
+ */
106
+ Word,
107
+ /**
108
+ * Specifies the type of `WordOnly`.
109
+ * @private
110
+ */
111
+ WordOnly,
112
+ /**
113
+ * Specifies the type of `Character`.
114
+ * @private
115
+ */
116
+ Character
117
+ }
118
+ /**
119
+ * public Enum for `PdfSubSuperScript`.
120
+ * @private
121
+ */
122
+ export enum PdfSubSuperScript {
123
+ /**
124
+ * Specifies the type of `None`.
125
+ * @private
126
+ */
127
+ None = 0,
128
+ /**
129
+ * Specifies the type of `SuperScript`.
130
+ * @private
131
+ */
132
+ SuperScript = 1,
133
+ /**
134
+ * Specifies the type of `SubScript`.
135
+ * @private
136
+ */
137
+ SubScript = 2
138
+ }
139
+ /**
140
+ * public Enum for `FontEncoding`.
141
+ * @private
142
+ */
143
+ export enum FontEncoding {
144
+ /**
145
+ * Specifies the type of `Unknown`.
146
+ * @private
147
+ */
148
+ Unknown = 0,
149
+ /**
150
+ * Specifies the type of `StandardEncoding`.
151
+ * @private
152
+ */
153
+ StandardEncoding,
154
+ /**
155
+ * Specifies the type of `MacRomanEncoding`.
156
+ * @private
157
+ */
158
+ MacRomanEncoding,
159
+ /**
160
+ * Specifies the type of `MacExpertEncoding`.
161
+ * @private
162
+ */
163
+ MacExpertEncoding,
164
+ /**
165
+ * Specifies the type of `WinAnsiEncoding`.
166
+ * @private
167
+ */
168
+ WinAnsiEncoding,
169
+ /**
170
+ * Specifies the type of `PdfDocEncoding`.
171
+ * @private
172
+ */
173
+ PdfDocEncoding,
174
+ /**
175
+ * Specifies the type of `IdentityH`.
176
+ * @private
177
+ */
178
+ IdentityH
179
+ }
180
+ /**
181
+ * public Enum for `TtfCmapFormat`.
182
+ * @private
183
+ */
184
+ export enum TtfCmapFormat {
185
+ /**
186
+ * This is the Apple standard character to glyph index mapping table.
187
+ * @private
188
+ */
189
+ Apple = 0,
190
+ /**
191
+ * This is the Microsoft standard character to glyph index mapping table.
192
+ * @private
193
+ */
194
+ Microsoft = 4,
195
+ /**
196
+ * Format 6: Trimmed table mapping.
197
+ * @private
198
+ */
199
+ Trimmed = 6
200
+ }
201
+ /**
202
+ * Enumerator that implements CMAP encodings.
203
+ * @private
204
+ */
205
+ export enum TtfCmapEncoding {
206
+ /**
207
+ * Unknown encoding.
208
+ * @private
209
+ */
210
+ Unknown = 0,
211
+ /**
212
+ * When building a symbol font for Windows.
213
+ * @private
214
+ */
215
+ Symbol = 1,
216
+ /**
217
+ * When building a Unicode font for Windows.
218
+ * @private
219
+ */
220
+ Unicode = 2,
221
+ /**
222
+ * For font that will be used on a Macintosh.
223
+ * @private
224
+ */
225
+ Macintosh = 3
226
+ }
227
+ /**
228
+ * Ttf platform ID.
229
+ * @private
230
+ */
231
+ export enum TtfPlatformID {
232
+ /**
233
+ * Apple platform.
234
+ * @private
235
+ */
236
+ AppleUnicode = 0,
237
+ /**
238
+ * Macintosh platform.
239
+ * @private
240
+ */
241
+ Macintosh = 1,
242
+ /**
243
+ * Iso platform.
244
+ * @private
245
+ */
246
+ Iso = 2,
247
+ /**
248
+ * Microsoft platform.
249
+ * @private
250
+ */
251
+ Microsoft = 3
252
+ }
253
+ /**
254
+ * Microsoft encoding ID.
255
+ * @private
256
+ */
257
+ export enum TtfMicrosoftEncodingID {
258
+ /**
259
+ * Undefined encoding.
260
+ * @private
261
+ */
262
+ Undefined = 0,
263
+ /**
264
+ * Unicode encoding.
265
+ * @private
266
+ */
267
+ Unicode = 1,
268
+ }
269
+ /**
270
+ * Macintosh encoding ID.
271
+ * @private
272
+ */
273
+ export enum TtfMacintoshEncodingID {
274
+ /**
275
+ * Roman encoding.
276
+ * @private
277
+ */
278
+ Roman = 0,
279
+ /**
280
+ * Japanese encoding.
281
+ * @private
282
+ */
283
+ Japanese = 1,
284
+ /**
285
+ * Chinese encoding.
286
+ * @private
287
+ */
288
+ Chinese = 2
289
+ }
290
+ /**
291
+ * Enumerator that implements font descriptor flags.
292
+ * @private
293
+ */
294
+ export enum FontDescriptorFlags {
295
+ /**
296
+ * All glyphs have the same width (as opposed to proportional or variable-pitch fonts, which have different widths).
297
+ * @private
298
+ */
299
+ FixedPitch = 1,
300
+ /**
301
+ * Glyphs have serifs, which are short strokes drawn at an angle on the top and
302
+ * bottom of glyph stems (as opposed to sans serif fonts, which do not).
303
+ * @private
304
+ */
305
+ Serif = 2,
306
+ /**
307
+ * Font contains glyphs outside the Adobe standard Latin character set. The
308
+ * flag and the nonsymbolic flag cannot both be set or both be clear.
309
+ * @private
310
+ */
311
+ Symbolic = 4,
312
+ /**
313
+ * Glyphs resemble cursive handwriting.
314
+ * @private
315
+ */
316
+ Script = 8,
317
+ /**
318
+ * Font uses the Adobe standard Latin character set or a subset of it.
319
+ * @private
320
+ */
321
+ Nonsymbolic = 32,
322
+ /**
323
+ * Glyphs have dominant vertical strokes that are slanted.
324
+ * @private
325
+ */
326
+ Italic = 64,
327
+ /**
328
+ * Bold font.
329
+ * @private
330
+ */
331
+ ForceBold = 0x40000,
332
+ }
333
+ /**
334
+ * true type font composite glyph flags.
335
+ * @private
336
+ */
337
+ export enum TtfCompositeGlyphFlags {
338
+ /**
339
+ * The Arg1And2AreWords.
340
+ * @private
341
+ */
342
+ Arg1And2AreWords = 0x0001,
343
+ /**
344
+ * The ArgsAreXyValues.
345
+ * @private
346
+ */
347
+ ArgsAreXyValues = 0x0002,
348
+ /**
349
+ * The RoundXyToGrid.
350
+ * @private
351
+ */
352
+ RoundXyToGrid = 0x0004,
353
+ /**
354
+ * The WeHaveScale.
355
+ * @private
356
+ */
357
+ WeHaveScale = 0x0008,
358
+ /**
359
+ * The Reserved.
360
+ * @private
361
+ */
362
+ Reserved = 0x0010,
363
+ /**
364
+ * The MoreComponents.
365
+ * @private
366
+ */
367
+ MoreComponents = 0x0020,
368
+ /**
369
+ * The WeHaveAnXyScale.
370
+ * @private
371
+ */
372
+ WeHaveAnXyScale = 0x0040,
373
+ /**
374
+ * The WeHaveTwoByTwo
375
+ */
376
+ WeHaveTwoByTwo = 0x0080,
377
+ /**
378
+ * The WeHaveInstructions.
379
+ */
380
+ WeHaveInstructions = 0x0100,
381
+ /**
382
+ * The UseMyMetrics.
383
+ */
384
+ UseMyMetrics = 0x0200,
385
+ }
@@ -0,0 +1,248 @@
1
+ /**
2
+ * PdfFontMetrics.ts class for EJ2-PDF
3
+ */
4
+ import { PdfStringFormat } from './pdf-string-format';
5
+ import { PdfFont } from './pdf-font';
6
+ import { PdfSubSuperScript } from './enum';
7
+ import { PdfArray } from './../../primitives/pdf-array';
8
+ /**
9
+ * `Metrics` of the font.
10
+ * @private
11
+ */
12
+ export class PdfFontMetrics {
13
+ // Fields
14
+ /**
15
+ * Gets `ascent` of the font.
16
+ * @private
17
+ */
18
+ public ascent : number;
19
+ /**
20
+ * Gets `descent` of the font.
21
+ * @private
22
+ */
23
+ public descent : number;
24
+ /**
25
+ * `Name` of the font.
26
+ * @private
27
+ */
28
+ public name : string;
29
+ /**
30
+ * Gets `PostScript` Name of the font.
31
+ * @private
32
+ */
33
+ public postScriptName : string;
34
+ /**
35
+ * Gets `size` of the font.
36
+ * @private
37
+ */
38
+ public size : number;
39
+ /**
40
+ * Gets `height` of the font.
41
+ * @private
42
+ */
43
+ public height : number;
44
+ /**
45
+ * `First char` of the font.
46
+ * @private
47
+ */
48
+ public firstChar : number;
49
+ /**
50
+ * `Last char` of the font.
51
+ * @private
52
+ */
53
+ public lastChar : number;
54
+ /**
55
+ * `Line gap`.
56
+ * @private
57
+ */
58
+ public lineGap : number = 0;
59
+ /**
60
+ * `Subscript` size factor.
61
+ * @private
62
+ */
63
+ public subScriptSizeFactor : number;
64
+ /**
65
+ * `Superscript` size factor.
66
+ * @private
67
+ */
68
+ public superscriptSizeFactor : number;
69
+ /**
70
+ * Gets `table` of glyphs` width.
71
+ * @private
72
+ */
73
+ public internalWidthTable : WidthTable;
74
+ /**
75
+ * Checks whether is it `unicode font` or not.
76
+ * @private
77
+ */
78
+ public isUnicodeFont : boolean;
79
+ /**
80
+ * Indicate whether the true type font reader font has bold style.
81
+ */
82
+ public isBold : boolean;
83
+ // Public methods
84
+ /**
85
+ * Returns `ascent` taking into consideration font`s size.
86
+ * @private
87
+ */
88
+ public getAscent(format : PdfStringFormat) : number {
89
+ let returnValue : number = this.ascent * PdfFont.charSizeMultiplier * this.getSize(format);
90
+ return returnValue;
91
+ }
92
+ /**
93
+ * Returns `descent` taking into consideration font`s size.
94
+ * @private
95
+ */
96
+ public getDescent(format : PdfStringFormat) : number {
97
+ let returnValue : number = this.descent * PdfFont.charSizeMultiplier * this.getSize(format);
98
+ return returnValue;
99
+ }
100
+ /**
101
+ * Returns `Line gap` taking into consideration font`s size.
102
+ * @private
103
+ */
104
+ public getLineGap(format : PdfStringFormat) : number {
105
+ let returnValue : number = this.lineGap * PdfFont.charSizeMultiplier * this.getSize(format);
106
+ return returnValue;
107
+ }
108
+ /**
109
+ * Returns `height` taking into consideration font`s size.
110
+ * @private
111
+ */
112
+ public getHeight(format : PdfStringFormat) : number {
113
+ let height : number;
114
+ let clearTypeFonts : string[] = [ 'cambria', 'candara', 'constantia', 'corbel', 'cariadings' ];
115
+ let clearTypeFontCollection : string[] = [];
116
+ for (let index : number = 0; index < clearTypeFonts.length; index++) {
117
+ let font : string = clearTypeFonts[index];
118
+ clearTypeFontCollection.push(font);
119
+ }
120
+ if (this.getDescent(format) < 0) {
121
+ // if ((clearTypeFontCollection.indexOf(this.name.toLowerCase()) !== -1) && !this.isUnicodeFont) {
122
+ // height = (this.GetAscent(format) - this.GetDescent(format) - this.GetLineGap(format));
123
+ // } else {
124
+ height = (this.getAscent(format) - this.getDescent(format) + this.getLineGap(format));
125
+ // }
126
+ } else {
127
+ height = (this.getAscent(format) + this.getDescent(format) + this.getLineGap(format));
128
+ }
129
+ return height;
130
+ }
131
+ /**
132
+ * Calculates `size` of the font depending on the subscript/superscript value.
133
+ * @private
134
+ */
135
+ public getSize(format : PdfStringFormat) : number {
136
+ let size : number = this.size;
137
+ if (format != null) {
138
+ switch (format.subSuperScript) {
139
+ case PdfSubSuperScript.SubScript:
140
+ size /= this.subScriptSizeFactor;
141
+ break;
142
+
143
+ case PdfSubSuperScript.SuperScript:
144
+ size /= this.superscriptSizeFactor;
145
+ break;
146
+ }
147
+ }
148
+ return size;
149
+ }
150
+ /**
151
+ * `Clones` the metrics.
152
+ * @private
153
+ */
154
+ public clone() : PdfFontMetrics {
155
+ let metrics : PdfFontMetrics = this;
156
+ metrics.widthTable = WidthTable.clone() as WidthTable;
157
+ return metrics;
158
+ }
159
+ // Properies
160
+ /**
161
+ * Gets or sets the `width table`.
162
+ * @private
163
+ */
164
+ public get widthTable() : WidthTable {
165
+ return this.internalWidthTable;
166
+ }
167
+ public set widthTable(value : WidthTable) {
168
+ this.internalWidthTable = value;
169
+ }
170
+ }
171
+ export abstract class WidthTable {
172
+ // // Properties
173
+ /**
174
+ * Returns the `width` of the specific index.
175
+ * @private
176
+ */
177
+ public abstract items(index : number) : number;
178
+ // // ICloneable Members
179
+ /**
180
+ * `Clones` this instance of the WidthTable class.
181
+ * @private
182
+ */
183
+ public abstract clone() : WidthTable;
184
+ /**
185
+ * Static `clones` this instance of the WidthTable class.
186
+ * @private
187
+ */
188
+ public static clone() : WidthTable {
189
+ return null;
190
+ }
191
+ }
192
+ export class StandardWidthTable extends WidthTable {
193
+ // Fields
194
+ /**
195
+ * The `widths` of the supported characters.
196
+ * @private
197
+ */
198
+ private widths : number[];
199
+ //Properties
200
+ /**
201
+ * Gets the `32 bit number` at the specified index.
202
+ * @private
203
+ */
204
+ public items(index : number) : number {
205
+ if (index < 0 || index >= this.widths.length) {
206
+ throw new Error('ArgumentOutOfRangeException:index, The character is not supported by the font.');
207
+ }
208
+ let result : number = this.widths[index];
209
+ return result;
210
+ }
211
+ /**
212
+ * Gets the `length` of the internal array.
213
+ * @private
214
+ */
215
+ public get length() : number {
216
+ return this.widths.length;
217
+ }
218
+ // Constructors
219
+ /**
220
+ * Initializes a new instance of the `StandardWidthTable` class.
221
+ * @private
222
+ */
223
+ public constructor(widths : number[]) {
224
+ super();
225
+ if (widths == null) {
226
+ throw new Error('ArgumentNullException:widths');
227
+ }
228
+ this.widths = widths;
229
+ }
230
+ //Overrides
231
+ /**
232
+ * `Clones` this instance of the WidthTable class.
233
+ * @private
234
+ */
235
+ public clone() : WidthTable {
236
+ let swt : StandardWidthTable = this;
237
+ swt.widths = this.widths;
238
+ return swt;
239
+ }
240
+ /**
241
+ * Converts width table to a `PDF array`.
242
+ * @private
243
+ */
244
+ public toArray() : PdfArray {
245
+ let arr : PdfArray = new PdfArray(this.widths);
246
+ return arr;
247
+ }
248
+ }