@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,265 +0,0 @@
1
- import { PdfPage } from './../pages/pdf-page';
2
- import { PdfGraphics } from './../graphics/pdf-graphics';
3
- import { PointF, RectangleF, SizeF } from './../drawing/pdf-drawing';
4
- import { PdfTextElement } from './../graphics/figures/text-element';
5
- import { PdfUriAnnotation } from './uri-annotation';
6
- import { PdfStringLayouter, PdfStringLayoutResult } from './../graphics/fonts/string-layouter';
7
- import { PdfFontStyle } from './../graphics/fonts/enum';
8
- import { PdfLayoutResult } from './../graphics/figures/base/element-layouter';
9
- import { PdfTextAlignment } from './../graphics/enum';
10
- import { PdfArray } from './../primitives/pdf-array';
11
- import { PdfNumber } from './../primitives/pdf-number';
12
- /**
13
- * `PdfTextWebLink` class represents the class for text web link annotation.
14
- * ```typescript
15
- * // create a new PDF document.
16
- * let document : PdfDocument = new PdfDocument();
17
- * // add a page to the document.
18
- * let page1 : PdfPage = document.pages.add();
19
- * // create the font
20
- * let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
21
- * //
22
- * // create the Text Web Link
23
- * let textLink : PdfTextWebLink = new PdfTextWebLink();
24
- * // set the hyperlink
25
- * textLink.url = 'http://www.google.com';
26
- * // set the link text
27
- * textLink.text = 'Google';
28
- * // set the font
29
- * textLink.font = font;
30
- * // draw the hyperlink in PDF page
31
- * textLink.draw(page1, new PointF(10, 40));
32
- * //
33
- * // save the document.
34
- * document.save('output.pdf');
35
- * // destroy the document
36
- * document.destroy();
37
- * ```
38
- */
39
- export class PdfTextWebLink extends PdfTextElement {
40
- // Fields
41
- /**
42
- * Internal variable to store `Url`.
43
- * @default ''
44
- * @private
45
- */
46
- private uniformResourceLocator : string = '';
47
- /**
48
- * Internal variable to store `Uri Annotation` object.
49
- * @default null
50
- * @private
51
- */
52
- private uriAnnotation : PdfUriAnnotation = null;
53
- /**
54
- * Checks whether the drawTextWebLink method with `PointF` overload is called or not.
55
- * If it set as true, then the start position of each lines excluding firest line is changed as (0, Y).
56
- * @private
57
- * @hidden
58
- */
59
- private recalculateBounds : boolean = false;
60
- private defaultBorder : PdfArray = new PdfArray();
61
- // Properties
62
- /**
63
- * Gets or sets the `Uri address`.
64
- * ```typescript
65
- * // create a new PDF document.
66
- * let document : PdfDocument = new PdfDocument();
67
- * // add a page to the document.
68
- * let page1 : PdfPage = document.pages.add();
69
- * // create the font
70
- * let font : PdfFont = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
71
- * // create the Text Web Link
72
- * let textLink : PdfTextWebLink = new PdfTextWebLink();
73
- * //
74
- * // set the hyperlink
75
- * textLink.url = 'http://www.google.com';
76
- * //
77
- * // set the link text
78
- * textLink.text = 'Google';
79
- * // set the font
80
- * textLink.font = font;
81
- * // draw the hyperlink in PDF page
82
- * textLink.draw(page1, new PointF(10, 40));
83
- * // save the document.
84
- * document.save('output.pdf');
85
- * // destroy the document
86
- * document.destroy();
87
- * ```
88
- */
89
- public get url() : string {
90
- return this.uniformResourceLocator;
91
- }
92
- public set url(value : string) {
93
- if (value.length === 0) {
94
- throw new Error('ArgumentException : Url - string can not be empty');
95
- }
96
- this.uniformResourceLocator = value;
97
- }
98
-
99
- // Constructors
100
- /**
101
- * Initializes a new instance of the `PdfTextWebLink` class.
102
- * @private
103
- */
104
- public constructor() {
105
- super();
106
- for (let i : number = 0; i < 3; i++) {
107
- this.defaultBorder.add(new PdfNumber(0));
108
- }
109
- }
110
-
111
- // Implementation
112
- /* tslint:disable */
113
- /**
114
- * `Draws` a Text Web Link on the Page with the specified location.
115
- * @private
116
- */
117
- public draw(page : PdfPage, location : PointF) : PdfLayoutResult
118
- /**
119
- * `Draws` a Text Web Link on the Page with the specified bounds.
120
- * @private
121
- */
122
- public draw(page : PdfPage, bounds : RectangleF) : PdfLayoutResult
123
- /**
124
- * `Draw` a Text Web Link on the Graphics with the specified location.
125
- * @private
126
- */
127
- public draw(graphics : PdfGraphics, location : PointF) : PdfLayoutResult
128
- /**
129
- * `Draw` a Text Web Link on the Graphics with the specified bounds.
130
- * @private
131
- */
132
- public draw(graphics : PdfGraphics, bounds : RectangleF) : PdfLayoutResult
133
- public draw(arg1 : PdfGraphics|PdfPage, arg2 : PointF|RectangleF) : PdfLayoutResult {
134
- if (arg1 instanceof PdfPage) {
135
- let layout : PdfStringLayouter = new PdfStringLayouter();
136
- let previousFontStyle : PdfFontStyle = this.font.style;
137
- if (arg2 instanceof PointF) {
138
- this.recalculateBounds = true;
139
- this.font.style = PdfFontStyle.Underline;
140
- let layoutResult : PdfStringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg1.graphics.clientSize.width - arg2.x), 0), true, arg1.graphics.clientSize);
141
- if (layoutResult.lines.length === 1) {
142
- let textSize : SizeF = this.font.measureString(this.value);
143
- let rect : RectangleF = new RectangleF(arg2, textSize);
144
- rect = this.calculateBounds(rect, textSize.width, arg1.graphics.clientSize.width, arg2.x);
145
- this.uriAnnotation = new PdfUriAnnotation(rect, this.url);
146
- this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
147
- arg1.annotations.add(this.uriAnnotation);
148
- let result : PdfLayoutResult = this.drawText(arg1, arg2);
149
- this.font.style = previousFontStyle;
150
- return result;
151
- } else {
152
- let result : PdfLayoutResult = this.drawMultipleLineWithPoint(layoutResult, arg1, arg2);
153
- this.font.style = previousFontStyle;
154
- return result;
155
- }
156
- } else {
157
- let layoutResult : PdfStringLayoutResult = layout.layout(this.value, this.font, this.stringFormat, new SizeF((arg2 as RectangleF).width, 0), false, new SizeF(0, 0));
158
- this.font.style = PdfFontStyle.Underline;
159
- if (layoutResult.lines.length === 1) {
160
- let textSize : SizeF = this.font.measureString(this.value);
161
- let rect : RectangleF = new RectangleF(new PointF((arg2 as RectangleF).x, (arg2 as RectangleF).y), textSize);
162
- rect = this.calculateBounds(rect, textSize.width, (arg2 as RectangleF).width, (arg2 as RectangleF).x);
163
- this.uriAnnotation = new PdfUriAnnotation(rect, this.url);
164
- this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
165
- arg1.annotations.add(this.uriAnnotation);
166
- let returnValue : PdfLayoutResult = this.drawText(arg1, arg2 as RectangleF);
167
- this.font.style = previousFontStyle;
168
- return returnValue;
169
- } else {
170
- let returnValue : PdfLayoutResult = this.drawMultipleLineWithBounds(layoutResult, arg1, arg2 as RectangleF);
171
- this.font.style = previousFontStyle;
172
- return returnValue;
173
- }
174
- }
175
- } else {
176
- let page : PdfPage = new PdfPage();
177
- page = arg1.page as PdfPage;
178
- return this.draw(page, arg2);
179
- }
180
- }
181
- /* tslint:enable */
182
- //Private methods
183
- /**
184
- * Helper method `Draw` a Multiple Line Text Web Link on the Graphics with the specified location.
185
- * @private
186
- */
187
- private drawMultipleLineWithPoint(result : PdfStringLayoutResult, page : PdfPage, location : PointF) : PdfLayoutResult {
188
- let layoutResult : PdfLayoutResult;
189
- for (let i : number = 0; i < result.layoutLines.length; i++) {
190
- let size : SizeF = this.font.measureString(result.lines[i].text);
191
- let bounds : RectangleF = new RectangleF(location, size);
192
- if (i !== 0) {
193
- bounds.x = 0;
194
- }
195
- this.text = result.lines[i].text;
196
- if (bounds.y + size.height > page.graphics.clientSize.height) {
197
- if (i !== 0) {
198
- page = page.graphics.getNextPage();
199
- bounds = new RectangleF(0, 0, page.graphics.clientSize.width, size.height);
200
- location.y = 0;
201
- } else {
202
- break;
203
- }
204
- }
205
- bounds = this.calculateBounds(bounds, size.width, page.graphics.clientSize.width, bounds.x);
206
- this.uriAnnotation = new PdfUriAnnotation(bounds, this.url);
207
- this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
208
- page.annotations.add(this.uriAnnotation);
209
- if (i !== 0) {
210
- layoutResult = this.drawText(page, new PointF(0, bounds.y));
211
- } else {
212
- layoutResult = this.drawText(page, bounds.x, bounds.y);
213
- }
214
- location.y += size.height;
215
- }
216
- return layoutResult;
217
- }
218
- /**
219
- * Helper method `Draw` a Multiple Line Text Web Link on the Graphics with the specified bounds.
220
- * @private
221
- */
222
- private drawMultipleLineWithBounds(result : PdfStringLayoutResult, page : PdfPage, bounds : RectangleF) : PdfLayoutResult {
223
- let layoutResult : PdfLayoutResult;
224
- for (let i : number = 0; i < result.layoutLines.length; i++) {
225
- let size : SizeF = this.font.measureString(result.lines[i].text);
226
- let internalBounds : RectangleF = new RectangleF(new PointF(bounds.x, bounds.y), size);
227
- internalBounds = this.calculateBounds(internalBounds, size.width, bounds.width, bounds.x);
228
- this.text = result.lines[i].text;
229
- if (bounds.y + size.height > page.graphics.clientSize.height) {
230
- if (i !== 0) {
231
- page = page.graphics.getNextPage();
232
- bounds = new RectangleF(bounds.x, 0, bounds.width, size.height);
233
- internalBounds.y = 0;
234
- } else {
235
- break;
236
- }
237
- }
238
- this.uriAnnotation = new PdfUriAnnotation(internalBounds, this.url);
239
- this.uriAnnotation.dictionary.items.setValue('Border', this.defaultBorder);
240
- page.annotations.add(this.uriAnnotation);
241
- layoutResult = this.drawText(page, bounds);
242
- bounds.y += size.height;
243
- }
244
- return layoutResult;
245
- }
246
- /* tslint:disable */
247
- private calculateBounds(currentBounds : RectangleF, lineWidth : number, maximumWidth : number, startPosition : number) : RectangleF {
248
- let shift : number = 0;
249
- if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Center) {
250
- currentBounds.x = startPosition + (maximumWidth - lineWidth) / 2;
251
- currentBounds.width = lineWidth;
252
- } else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Right) {
253
- currentBounds.x = startPosition + (maximumWidth - lineWidth);
254
- currentBounds.width = lineWidth;
255
- } else if (this.stringFormat != null && typeof this.stringFormat !== 'undefined' && this.stringFormat.alignment === PdfTextAlignment.Justify) {
256
- currentBounds.x = startPosition;
257
- currentBounds.width = maximumWidth;
258
- } else {
259
- currentBounds.width = startPosition;
260
- currentBounds.width = lineWidth;
261
- }
262
- return currentBounds;
263
- }
264
- /* tslint:enable */
265
- }
@@ -1,86 +0,0 @@
1
- /**
2
- * PdfUriAnnotation.ts class for EJ2-PDF
3
- */
4
- import { PdfAction } from './../actions/action';
5
- import { RectangleF } from './../drawing/pdf-drawing';
6
- import { PdfActionLinkAnnotation } from './action-link-annotation';
7
- import { PdfName } from './../primitives/pdf-name';
8
- import { PdfUriAction } from './../actions/uri-action';
9
- import { IPdfPrimitive } from './../../interfaces/i-pdf-primitives';
10
- /**
11
- * `PdfUriAnnotation` class represents the Uri annotation.
12
- * @private
13
- */
14
- export class PdfUriAnnotation extends PdfActionLinkAnnotation {
15
- // Fields
16
- /**
17
- * Internal variable to store `acton` for the annotation.
18
- * @private
19
- */
20
- private pdfUriAction : PdfUriAction;
21
- /**
22
- * Get `action` of the annotation.
23
- * @private
24
- */
25
- public get uriAction() : PdfUriAction {
26
- if (typeof this.pdfUriAction === 'undefined') {
27
- this.pdfUriAction = new PdfUriAction();
28
- }
29
- return this.pdfUriAction;
30
- }
31
-
32
- // Properties
33
- /**
34
- * Gets or sets the `Uri` address.
35
- * @private
36
- */
37
- public get uri() : string {
38
- return this.uriAction.uri;
39
- }
40
- public set uri(value : string) {
41
- if (this.uriAction.uri !== value) {
42
- this.uriAction.uri = value;
43
- }
44
- }
45
- /**
46
- * Gets or sets the `action`.
47
- * @private
48
- */
49
- public get action() : PdfAction {
50
- return this.getSetAction() as PdfAction;
51
- }
52
- public set action(value : PdfAction) {
53
- this.getSetAction(value);
54
- this.uriAction.next = value;
55
- }
56
-
57
- // Constructors
58
- /**
59
- * Initializes a new instance of the `PdfUriAnnotation` class with specified bounds.
60
- * @private
61
- */
62
- public constructor(rectangle : RectangleF)
63
- /**
64
- * Initializes a new instance of the `PdfUriAnnotation` class with specified bounds and URI.
65
- * @private
66
- */
67
- public constructor(rectangle : RectangleF, uri : string)
68
- public constructor(rectangle : RectangleF, uri ?: string) {
69
- super(rectangle);
70
- if (typeof uri !== 'undefined') {
71
- this.uri = uri;
72
- }
73
- }
74
-
75
- // Implementation
76
- /**
77
- * `Initializes` annotation object.
78
- * @private
79
- */
80
- protected initialize() : void {
81
- super.initialize();
82
- this.dictionary.items.setValue(this.dictionaryProperties.subtype, new PdfName(this.dictionaryProperties.link));
83
- let tempPrimitive : IPdfPrimitive = this.uriAction.element;
84
- this.dictionary.items.setValue(this.dictionaryProperties.a, this.uriAction.element);
85
- }
86
- }
@@ -1,150 +0,0 @@
1
- /**
2
- * Dictionary.ts class for EJ2-PDF
3
- * @private
4
- * @hidden
5
- */
6
- import {defaultToString} from './utils';
7
- // Used internally by dictionary
8
- /**
9
- * @private
10
- * @hidden
11
- */
12
- export interface IDictionaryPair<K, V> {
13
- key: K;
14
- value: V;
15
- }
16
- /**
17
- * @private
18
- * @hidden
19
- */
20
- export class Dictionary<K, V>{
21
- /**
22
- * @private
23
- * @hidden
24
- */
25
- protected table: { [key: string]: IDictionaryPair<K, V> };
26
- //: [key: K] will not work since indices can only by strings in javascript and typescript enforces this.
27
- /**
28
- * @private
29
- * @hidden
30
- */
31
- protected nElements: number;
32
- /**
33
- * @private
34
- * @hidden
35
- */
36
- protected toStr: (key: K) => string;
37
- /**
38
- * @private
39
- * @hidden
40
- */
41
- public constructor(toStringFunction?: (key: K) => string) {
42
- this.table = {};
43
- this.nElements = 0;
44
- this.toStr = toStringFunction || defaultToString;
45
- }
46
- /**
47
- * @private
48
- * @hidden
49
- */
50
- public getValue(key: K): V {
51
- const pair: IDictionaryPair<K, V> = this.table['$' + this.toStr(key)];
52
- if (typeof pair === 'undefined') {
53
- return undefined;
54
- }
55
- return pair.value;
56
- }
57
- /**
58
- * @private
59
- * @hidden
60
- */
61
- public setValue(key: K, value: V): V {
62
- // if (typeof key === 'undefined' || typeof value === 'undefined') {
63
- // return undefined;
64
- // }
65
- let ret: V;
66
- const k : string = '$' + this.toStr(key);
67
- const previousElement: IDictionaryPair<K, V> = this.table[k];
68
- // if (typeof previousElement === 'undefined') {
69
- this.nElements++;
70
- ret = undefined;
71
- // }
72
- this.table[k] = {
73
- key: key,
74
- value: value
75
- };
76
- return ret;
77
- }
78
- /**
79
- * @private
80
- * @hidden
81
- */
82
- public remove(key: K): V {
83
- const k : string = '$' + this.toStr(key);
84
- const previousElement: IDictionaryPair<K, V> = this.table[k];
85
- // if (typeof previousElement !== 'undefined') {
86
- delete this.table[k];
87
- this.nElements--;
88
- return previousElement.value;
89
- // }
90
- // return undefined;
91
- }
92
- /**
93
- * @private
94
- * @hidden
95
- */
96
- public keys(): K[] {
97
- const keysArray: K[] = [];
98
- let namesOfKeys : string[] = Object.keys(this.table);
99
- for (let index1 : number = 0; index1 < namesOfKeys.length; index1++) {
100
- // if (Object.prototype.hasOwnProperty.call(this.table, namesOfKeys[index1])) {
101
- const pair1: IDictionaryPair<K, V> = this.table[namesOfKeys[index1]];
102
- keysArray.push(pair1.key);
103
- // }
104
- }
105
- return keysArray;
106
- }
107
- /**
108
- * @private
109
- * @hidden
110
- */
111
- public values(): V[] {
112
- const valuesArray: V[] = [];
113
- let namesOfValues : string[] = Object.keys(this.table);
114
- for (let index2 : number = 0; index2 < namesOfValues.length; index2++) {
115
- // if (Object.prototype.hasOwnProperty.call(this.table, namesOfValues[index2])) {
116
- const pair2: IDictionaryPair<K, V> = this.table[namesOfValues[index2]];
117
- valuesArray.push(pair2.value);
118
- // }
119
- }
120
- return valuesArray;
121
- }
122
- /**
123
- * @private
124
- * @hidden
125
- */
126
- public containsKey(key: K): boolean {
127
- let retutnValue : boolean = true;
128
- if (typeof this.getValue(key) === 'undefined') {
129
- retutnValue = true;
130
- } else {
131
- retutnValue = false;
132
- }
133
- return !retutnValue;
134
- }
135
- /**
136
- * @private
137
- * @hidden
138
- */
139
- public clear() : void {
140
- this.table = {};
141
- this.nElements = 0;
142
- }
143
- /**
144
- * @private
145
- * @hidden
146
- */
147
- public size(): number {
148
- return this.nElements;
149
- }
150
- } // End of dictionary
@@ -1,125 +0,0 @@
1
- /**
2
- * Dictionary class
3
- * @private
4
- * @hidden
5
- */
6
- export class TemporaryDictionary<K, V> {
7
- /**
8
- * @hidden
9
- * @private
10
- */
11
- private mKeys: K[] = [];
12
- /**
13
- * @hidden
14
- * @private
15
- */
16
- private mValues: V[] = [];
17
- /**
18
- * @hidden
19
- * @private
20
- */
21
- public size(): number {
22
- return this.mKeys.length;
23
- }
24
- /**
25
- * @hidden
26
- * @private
27
- */
28
- public add(key: K, value: V): number {
29
- if (key === undefined || key === null || value === undefined || value === null) {
30
- throw new ReferenceError('Provided key or value is not valid.');
31
- }
32
- let index: number = this.mKeys.indexOf(key);
33
- if (index < 0) {
34
- this.mKeys.push(key);
35
- this.mValues.push(value);
36
- return 1;
37
- } else {
38
- throw new RangeError('An item with the same key has already been added.');
39
- }
40
- }
41
- /**
42
- * @hidden
43
- * @private
44
- */
45
- public keys(): K[] {
46
- return this.mKeys;
47
- }
48
- /**
49
- * @hidden
50
- * @private
51
- */
52
- public values(): V[] {
53
- return this.mValues;
54
- }
55
- /**
56
- * @hidden
57
- * @private
58
- */
59
- public getValue(key: K): V {
60
- if (key === undefined || key === null) {
61
- throw new ReferenceError('Provided key is not valid.');
62
- }
63
- let index: number = this.mKeys.indexOf(key);
64
- if (index < 0) {
65
- throw new RangeError('No item with the specified key has been added.');
66
- } else {
67
- return this.mValues[index];
68
- }
69
- }
70
- /**
71
- * @hidden
72
- * @private
73
- */
74
- public setValue(key: K, value: V): void {
75
- if (key === undefined || key === null) {
76
- throw new ReferenceError('Provided key is not valid.');
77
- }
78
- let index: number = this.mKeys.indexOf(key);
79
- if (index < 0) {
80
- this.mKeys.push(key);
81
- this.mValues.push(value);
82
- } else {
83
- this.mValues[index] = value;
84
- }
85
- }
86
- /**
87
- * @hidden
88
- * @private
89
- */
90
- public remove(key: K): boolean {
91
- if (key === undefined || key === null) {
92
- throw new ReferenceError('Provided key is not valid.');
93
- }
94
- let index: number = this.mKeys.indexOf(key);
95
- if (index < 0) {
96
- throw new RangeError('No item with the specified key has been added.');
97
- } else {
98
- this.mKeys.splice(index, 1);
99
- this.mValues.splice(index, 1);
100
- return true;
101
- }
102
- }
103
- /**
104
- * @hidden
105
- * @private
106
- */
107
- public containsKey(key: K): boolean {
108
- if (key === undefined || key === null) {
109
- throw new ReferenceError('Provided key is not valid.');
110
- }
111
- let index: number = this.mKeys.indexOf(key);
112
- if (index < 0) {
113
- return false;
114
- }
115
- return true;
116
- }
117
- /**
118
- * @hidden
119
- * @private
120
- */
121
- public clear(): void {
122
- this.mKeys = [];
123
- this.mValues = [];
124
- }
125
- }
@@ -1,38 +0,0 @@
1
- /**
2
- * Utils.ts class for EJ2-PDF
3
- * @private
4
- * @hidden
5
- */
6
- export interface ICompareFunction<T> {
7
- (a: T, b: T): number;
8
- }
9
- /**
10
- * @private
11
- * @hidden
12
- */
13
- export interface IEqualsFunction<T> {
14
- (a: T, b: T): boolean;
15
- }
16
- /**
17
- * @private
18
- * @hidden
19
- */
20
- export interface ILoopFunction<T> {
21
- (a: T): boolean | void;
22
- }
23
- /**
24
- * @private
25
- * @hidden
26
- */
27
- export function defaultToString(item: string|number|string[]|number[]|Object|Object[]|boolean): string {
28
- // if (item === null) {
29
- // return 'COLLECTION_NULL';
30
- // } else if (typeof item === 'undefined') {
31
- // return 'COLLECTION_UNDEFINED';
32
- // } else if (Object.prototype.toString.call(item) === '[object String]') {
33
- if (Object.prototype.toString.call(item) === '[object String]') {
34
- return '$s' + item;
35
- } else {
36
- return '$o' + item.toString();
37
- }
38
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * PdfAutomaticFieldInfoCollection.ts class for EJ2-PDF
3
- * @private
4
- */
5
- import { PdfAutomaticFieldInfo } from './automatic-field-info';
6
- /**
7
- * Represent a `collection of automatic fields information`.
8
- * @private
9
- */
10
- export class PdfAutomaticFieldInfoCollection {
11
- /**
12
- * Internal variable to store instance of `pageNumberFields` class.
13
- * @private
14
- */
15
- private automaticFieldsInformation : PdfAutomaticFieldInfo[] = [];
16
- /**
17
- * Gets the `page number fields collection`.
18
- * @private
19
- */
20
- public get automaticFields() : PdfAutomaticFieldInfo[] {
21
- return this.automaticFieldsInformation;
22
- }
23
- /**
24
- * Initializes a new instance of the 'PdfPageNumberFieldInfoCollection' class.
25
- * @private
26
- */
27
- public constructor() {
28
- //
29
- }
30
- // Public methods
31
- /// Adds the specified field info.
32
- /**
33
- * Add page number field into collection.
34
- * @private
35
- */
36
- public add(fieldInfo : PdfAutomaticFieldInfo) : number {
37
- return this.automaticFields.push(fieldInfo);
38
- }
39
- }