@syncfusion/ej2-pdf-export 22.1.34 → 22.1.37

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 (169) 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 +748 -93
  6. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  7. package/dist/es6/ej2-pdf-export.es5.js +933 -225
  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/document/pdf-catalog.d.ts +7 -0
  14. package/src/implementation/document/pdf-catalog.js +16 -0
  15. package/src/implementation/document/pdf-document-base.d.ts +13 -0
  16. package/src/implementation/document/pdf-document-base.js +18 -0
  17. package/src/implementation/document/pdf-viewer-preferences.d.ts +467 -0
  18. package/src/implementation/document/pdf-viewer-preferences.js +624 -0
  19. package/src/implementation/input-output/pdf-dictionary-properties.d.ts +55 -0
  20. package/src/implementation/input-output/pdf-dictionary-properties.js +55 -0
  21. package/dist/ts/implementation/actions/action.ts +0 -76
  22. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  23. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  24. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  25. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  26. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  27. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  28. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  29. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  30. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  31. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  32. package/dist/ts/implementation/collections/utils.ts +0 -38
  33. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  34. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  35. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  36. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  37. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  38. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  39. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  40. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  41. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  42. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  43. package/dist/ts/implementation/document/pdf-catalog.ts +0 -52
  44. package/dist/ts/implementation/document/pdf-document-base.ts +0 -166
  45. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  46. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  47. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  48. package/dist/ts/implementation/general/enum.ts +0 -21
  49. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  50. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -62
  51. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  52. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  53. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  54. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  55. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  56. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  57. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  58. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  59. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  60. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  61. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  62. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  63. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  64. package/dist/ts/implementation/graphics/constants.ts +0 -31
  65. package/dist/ts/implementation/graphics/enum.ts +0 -413
  66. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  67. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  68. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  69. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  70. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  71. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  72. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  73. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  74. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  75. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  76. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  77. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  78. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  79. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  80. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  81. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  82. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  83. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  84. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  85. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  86. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  87. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  88. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  89. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  90. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  91. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  92. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  93. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  94. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  95. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  96. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  97. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  98. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  99. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  100. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  101. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  102. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  103. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  104. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  105. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  106. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  107. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  108. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  109. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  110. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  111. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  112. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  113. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -439
  114. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  115. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  116. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  117. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2424
  118. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  119. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  120. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  121. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  122. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  123. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  124. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  125. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  126. package/dist/ts/implementation/input-output/enum.ts +0 -16
  127. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  128. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -515
  129. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  130. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  131. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  132. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  133. package/dist/ts/implementation/pages/enum.ts +0 -201
  134. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  135. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  136. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  137. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  138. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  139. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  140. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  141. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -659
  142. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  143. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  144. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  145. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  146. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  147. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  148. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  149. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  150. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  151. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  152. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  153. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -336
  154. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  155. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
  156. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1193
  157. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  158. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
  159. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
  160. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  161. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  162. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  163. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  164. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  165. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  166. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  167. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  168. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  169. package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
@@ -1,276 +0,0 @@
1
- /**
2
- * ShapeLayouter.ts class for EJ2-PDF
3
- * @private
4
- */
5
- import { ElementLayouter, PdfLayoutResult, PdfLayoutParams } from './element-layouter';
6
- import { RectangleF, SizeF, PointF } from './../../../drawing/pdf-drawing';
7
- import { PdfPage } from './../../../pages/pdf-page';
8
- import { PdfShapeElement } from './pdf-shape-element';
9
- import { PdfLayoutBreakType, PdfLayoutType } from './../../figures/enum';
10
- import { BeginPageLayoutEventArgs, EndPageLayoutEventArgs } from './../../../structured-elements/grid/layout/grid-layouter';
11
- import { PdfGraphics, PdfGraphicsState } from './../../pdf-graphics';
12
- /**
13
- * ShapeLayouter class.
14
- * @private
15
- */
16
- export class ShapeLayouter extends ElementLayouter {
17
- // Fields
18
- /**
19
- * Initializes the object to store `older form elements` of previous page.
20
- * @default 0
21
- * @private
22
- */
23
- public olderPdfForm : number = 0;
24
- /**
25
- * Initializes the offset `index`.
26
- * * @default 0
27
- * @private
28
- */
29
- private static index : number = 0;
30
- /**
31
- * Initializes the `difference in page height`.
32
- * * @default 0
33
- * @private
34
- */
35
- private static splitDiff : number = 0;
36
- /**
37
- * Determines the `end of Vertical offset` values.
38
- * * @default false
39
- * @private
40
- */
41
- private static last : boolean = false;
42
- /**
43
- * Determines the document link annotation `border width`.
44
- * * @default 0
45
- * @private
46
- */
47
- private static readonly borderWidth : number = 0;
48
- /**
49
- * Checks weather `is pdf grid` or not.
50
- * @private
51
- */
52
- public isPdfGrid : boolean;
53
- /**
54
- * The `bounds` of the shape element.
55
- * * @default new RectangleF()
56
- * @private
57
- */
58
- public shapeBounds : RectangleF = new RectangleF();
59
- /**
60
- * The `bottom cell padding`.
61
- * @private
62
- */
63
- public bottomCellPadding : number;
64
- /**
65
- * Total Page size of the web page.
66
- * * @default 0
67
- * @private
68
- */
69
- private totalPageSize : number = 0;
70
-
71
- // Constructors
72
- /**
73
- * Initializes a new instance of the `ShapeLayouter` class.
74
- * @private
75
- */
76
- public constructor(element : PdfShapeElement) {
77
- super(element);
78
- }
79
- // Properties
80
- /**
81
- * Gets shape element.
82
- * @private
83
- */
84
- public get element() : PdfShapeElement {
85
- return (this.elements as PdfShapeElement);
86
- }
87
- // Implementation
88
- /**
89
- * Layouts the element.
90
- * @private
91
- */
92
- protected layoutInternal(param : PdfLayoutParams) : PdfLayoutResult {
93
- let currentPage : PdfPage = param.page;
94
- let currentBounds : RectangleF = param.bounds;
95
- let shapeLayoutBounds : RectangleF = this.element.getBounds();
96
- shapeLayoutBounds.x = 0;
97
- shapeLayoutBounds.y = 0;
98
- /* tslint:disable */
99
- let isEmpty : boolean = (this.shapeBounds.x === this.shapeBounds.y && this.shapeBounds.y === this.shapeBounds.width && this.shapeBounds.width === this.shapeBounds.height && this.shapeBounds.height === 0) ? true : false;
100
- /* tslint:enable */
101
- if ((this.isPdfGrid) && (!(isEmpty))) {
102
- shapeLayoutBounds = this.shapeBounds;
103
- }
104
- let result : PdfLayoutResult = null;
105
- let pageResult : ShapeLayoutResult = new ShapeLayoutResult();
106
- pageResult.page = currentPage;
107
- /*tslint:disable:no-constant-condition */
108
- while (true) {
109
- // Raise event.
110
- let result1 : { currentBounds: RectangleF, cancel : boolean } = this.raiseBeforePageLayout(currentPage, currentBounds);
111
- currentBounds = result1.currentBounds;
112
- let endArgs : EndPageLayoutEventArgs = null;
113
- if (!result1.cancel) {
114
- pageResult = this.layoutOnPage(currentPage, currentBounds, shapeLayoutBounds, param);
115
- // Raise event.
116
- endArgs = this.raiseEndPageLayout(pageResult);
117
- result1.cancel = (endArgs === null) ? false : endArgs.cancel;
118
- }
119
- if (!pageResult.end && !result1.cancel) {
120
- currentBounds = this.getPaginateBounds(param);
121
- shapeLayoutBounds = this.getNextShapeBounds(shapeLayoutBounds, pageResult);
122
- currentPage = (endArgs === null || endArgs.nextPage === null) ?
123
- this.getNextPage(currentPage) : endArgs.nextPage;
124
- if (this.isPdfGrid) {
125
- result = this.getLayoutResult(pageResult);
126
- break;
127
- }
128
- } else {
129
- result = this.getLayoutResult(pageResult);
130
- break;
131
- }
132
- }
133
- return result;
134
- }
135
- /**
136
- * Raises BeforePageLayout event.
137
- * @private
138
- */
139
- private raiseBeforePageLayout(currentPage: PdfPage, currentBounds: RectangleF): { currentBounds : RectangleF, cancel : boolean } {
140
- let cancel: boolean = false;
141
- if (this.element.raiseBeginPageLayout) {
142
- let args: BeginPageLayoutEventArgs = new BeginPageLayoutEventArgs(currentBounds, currentPage);
143
- this.element.onBeginPageLayout(args);
144
- cancel = args.cancel;
145
- currentBounds = args.bounds;
146
- }
147
- return { currentBounds : currentBounds, cancel : cancel};
148
- }
149
- /**
150
- * Raises PageLayout event if needed.
151
- * @private
152
- */
153
- private raiseEndPageLayout(pageResult: ShapeLayoutResult): EndPageLayoutEventArgs {
154
- let args: EndPageLayoutEventArgs = null;
155
- if (this.element.raiseEndPageLayout) {
156
- let res: PdfLayoutResult = this.getLayoutResult(pageResult);
157
- args = new EndPageLayoutEventArgs(res);
158
- this.element.onEndPageLayout(args);
159
- }
160
- return args;
161
- }
162
- /**
163
- * Creates layout result.
164
- * @private
165
- */
166
- private getLayoutResult(pageResult: ShapeLayoutResult): PdfLayoutResult {
167
- let result: PdfLayoutResult = new PdfLayoutResult(pageResult.page, pageResult.bounds);
168
- return result;
169
- }
170
- /**
171
- * Calculates the next active shape bounds.
172
- * @private
173
- */
174
- private getNextShapeBounds(shapeLayoutBounds: RectangleF, pageResult: ShapeLayoutResult): RectangleF {
175
- let layoutedBounds: RectangleF = pageResult.bounds;
176
- shapeLayoutBounds.y = (shapeLayoutBounds.y + layoutedBounds.height);
177
- shapeLayoutBounds.height = (shapeLayoutBounds.height - layoutedBounds.height);
178
- return shapeLayoutBounds;
179
- }
180
- /**
181
- * Layouts the element on the current page.
182
- * @private
183
- */
184
- private layoutOnPage(currentPage: PdfPage, curBounds: RectangleF, sBounds: RectangleF, param: PdfLayoutParams): ShapeLayoutResult {
185
- let result: ShapeLayoutResult = new ShapeLayoutResult();
186
- curBounds = this.checkCorrectCurrentBounds(currentPage, curBounds, param);
187
- let fitToPage: boolean = this.fitsToBounds(curBounds, sBounds);
188
- let canDraw: boolean = !((param.format.break === PdfLayoutBreakType.FitElement)
189
- && (!fitToPage && (currentPage === param.page)));
190
- let shapeFinished: boolean = false;
191
- if (canDraw) {
192
- let drawRectangle: RectangleF = this.getDrawBounds(curBounds, sBounds);
193
- this.drawShape(currentPage.graphics, curBounds, drawRectangle);
194
- result.bounds = this.getPageResultBounds(curBounds, sBounds);
195
- shapeFinished = ((<number>(curBounds.height)) >= (<number>(sBounds.height)));
196
- }
197
- result.end = (shapeFinished || (param.format.layout === PdfLayoutType.OnePage));
198
- result.page = currentPage;
199
- return result;
200
- }
201
- /**
202
- * Returns Rectangle for element drawing on the page.
203
- * @private
204
- */
205
- private getDrawBounds(currentBounds: RectangleF, shapeLayoutBounds: RectangleF): RectangleF {
206
- let result: RectangleF = currentBounds;
207
- result.y = (result.y - shapeLayoutBounds.y);
208
- result.height = (result.height + shapeLayoutBounds.y);
209
- return result;
210
- }
211
- /**
212
- * Draws the shape.
213
- * @private
214
- */
215
- private drawShape(g: PdfGraphics, currentBounds: RectangleF, drawRectangle: RectangleF): void {
216
- let gState: PdfGraphicsState = g.save();
217
- try {
218
- g.setClip(currentBounds);
219
- this.element.drawGraphicsHelper(g, new PointF(drawRectangle.x, drawRectangle.y));
220
- }
221
- finally {
222
- g.restore(gState);
223
- }
224
- }
225
- /**
226
- * Corrects current bounds on the page.
227
- * @protected
228
- */
229
- protected checkCorrectCurrentBounds(currentPage: PdfPage, curBounds: RectangleF, param: PdfLayoutParams): RectangleF {
230
- let pageSize: SizeF = currentPage.graphics.clientSize;
231
- curBounds.width = (curBounds.width > 0) ? curBounds.width : (pageSize.width - curBounds.x);
232
- curBounds.height = (curBounds.height > 0) ? curBounds.height : (pageSize.height - curBounds.y);
233
- if (this.isPdfGrid) {
234
- curBounds.height = (curBounds.height - this.bottomCellPadding);
235
- }
236
- return curBounds;
237
- }
238
- /**
239
- * Calculates bounds where the shape was layout on the page.
240
- * @private
241
- */
242
- private getPageResultBounds(currentBounds: RectangleF, shapeLayoutBounds: RectangleF): RectangleF {
243
- let result: RectangleF = currentBounds;
244
- result.height = Math.min(result.height, shapeLayoutBounds.height);
245
- return result;
246
- }
247
- /**
248
- * Checks whether shape rectangle fits to the lay outing bounds.
249
- * @private
250
- */
251
- private fitsToBounds(currentBounds: RectangleF, shapeLayoutBounds: RectangleF): boolean {
252
- let fits: boolean = (shapeLayoutBounds.height <= currentBounds.height);
253
- return fits;
254
- }
255
- }
256
- /**
257
- * Contains lay outing result settings.
258
- * @private
259
- */
260
- class ShapeLayoutResult {
261
- /**
262
- * The last page where the element was drawn.
263
- * @private
264
- */
265
- public page : PdfPage;
266
- /**
267
- * The bounds of the element on the last page where it was drawn.
268
- * @private
269
- */
270
- public bounds : RectangleF;
271
- /**
272
- * Indicates whether the lay outing has been finished.
273
- * @private
274
- */
275
- public end : boolean;
276
- }
@@ -1,205 +0,0 @@
1
- /**
2
- * TextLayouter.ts class for EJ2-PDF
3
- */
4
- import { ElementLayouter, PdfLayoutParams, PdfLayoutResult } from './element-layouter';
5
- import { PdfStringFormat } from './../../fonts/pdf-string-format';
6
- import { PdfTextElement } from './../text-element';
7
- import { PdfPage } from './../../../pages/pdf-page';
8
- import { RectangleF, SizeF } from './../../../drawing/pdf-drawing';
9
- import { LineInfo, PdfStringLayoutResult, PdfStringLayouter } from './../../fonts/string-layouter';
10
- import { PdfLayoutBreakType } from './../../figures/enum';
11
- import { PdfGraphics } from './../../pdf-graphics';
12
- import { PdfColor } from './../../pdf-color';
13
- import { PdfSolidBrush } from './../../brushes/pdf-solid-brush';
14
- import { PdfTextWebLink } from './../../../annotations/pdf-text-web-link';
15
- /**
16
- * Class that `layouts the text`.
17
- * @private
18
- */
19
- export class TextLayouter extends ElementLayouter {
20
- // Fields
21
- /**
22
- * String `format`.
23
- * @private
24
- */
25
- private format : PdfStringFormat;
26
- /**
27
- * Gets the layout `element`.
28
- * @private
29
- */
30
- public get element() : PdfTextElement {
31
- return (super.getElement() as PdfTextElement);
32
- }
33
- // Constructors
34
- /**
35
- * Initializes a new instance of the `TextLayouter` class.
36
- * @private
37
- */
38
- public constructor(element : PdfTextElement) {
39
- super(element);
40
- }
41
- // Implementation
42
- /**
43
- * `Layouts` the element.
44
- * @private
45
- */
46
- protected layoutInternal(param : PdfLayoutParams) : PdfLayoutResult {
47
- /* tslint:disable */
48
- this.format = (this.element.stringFormat !== null && typeof this.element.stringFormat !== 'undefined') ? this.element.stringFormat : null;
49
- let currentPage : PdfPage = param.page;
50
- let currentBounds : RectangleF = param.bounds;
51
- let text : string = this.element.value;
52
- let result : PdfTextLayoutResult = null;
53
- let pageResult : TextPageLayoutResult = new TextPageLayoutResult();
54
- pageResult.page = currentPage;
55
- pageResult.remainder = text;
56
- for ( ; ; ) {
57
- pageResult = this.layoutOnPage(text, currentPage, currentBounds, param);
58
- result = this.getLayoutResult(pageResult);
59
- break;
60
- }
61
- /* tslint:enable */
62
- return result;
63
- }
64
- /**
65
- * Raises `PageLayout` event if needed.
66
- * @private
67
- */
68
- private getLayoutResult(pageResult : TextPageLayoutResult) : PdfTextLayoutResult {
69
- let result : PdfTextLayoutResult = new PdfTextLayoutResult(pageResult.page, pageResult.bounds, pageResult.remainder,
70
- pageResult.lastLineBounds);
71
- return result;
72
- }
73
- /* tslint:disable */
74
- /**
75
- * `Layouts` the text on the page.
76
- * @private
77
- */
78
- private layoutOnPage(text : string, currentPage : PdfPage, currentBounds : RectangleF,
79
- param : PdfLayoutParams) : TextPageLayoutResult {
80
- let result : TextPageLayoutResult = new TextPageLayoutResult();
81
- result.remainder = text;
82
- result.page = currentPage;
83
- currentBounds = this.checkCorrectBounds(currentPage, currentBounds);
84
- let layouter : PdfStringLayouter = new PdfStringLayouter();
85
- let stringResult : PdfStringLayoutResult = layouter.layout(text, this.element.font, this.format, currentBounds, currentPage.getClientSize().height, false, new SizeF(0, 0));
86
- let textFinished : boolean = (stringResult.remainder == null);
87
- let doesntFit : boolean = (param.format.break === PdfLayoutBreakType.FitElement);
88
- let canDraw : boolean = !(doesntFit || stringResult.empty);
89
- // Draw the text.
90
- let graphics : PdfGraphics = currentPage.graphics;
91
- let brush : PdfSolidBrush = this.element.getBrush() as PdfSolidBrush;
92
- if (this.element instanceof PdfTextWebLink) {
93
- brush.color = new PdfColor(0, 0, 255);
94
- }
95
- graphics.drawStringLayoutResult(stringResult, this.element.font, this.element.pen, brush,
96
- currentBounds, this.format);
97
- let lineInfo : LineInfo = stringResult.lines[stringResult.lineCount - 1];
98
- result.lastLineBounds = graphics.getLineBounds(stringResult.lineCount - 1, stringResult, this.element.font,
99
- currentBounds, this.format);
100
- result.bounds = this.getTextPageBounds(currentPage, currentBounds, stringResult);
101
- result.remainder = stringResult.remainder;
102
- result.end = (textFinished);
103
- return result;
104
- }
105
- /* tslint:enable */
106
- /**
107
- * `Corrects current bounds` on the page.
108
- * @private
109
- */
110
- private checkCorrectBounds(currentPage : PdfPage, currentBounds : RectangleF) : RectangleF {
111
- let pageSize : SizeF = currentPage.graphics.clientSize;
112
- currentBounds.height = (currentBounds.height > 0) ? currentBounds.height : pageSize.height - currentBounds.y;
113
- return currentBounds;
114
- }
115
- /**
116
- * Returns a `rectangle` where the text was printed on the page.
117
- * @private
118
- */
119
- /* tslint:disable */
120
- private getTextPageBounds(currentPage : PdfPage, currentBounds : RectangleF,
121
- stringResult : PdfStringLayoutResult) : RectangleF {
122
- let textSize : SizeF = stringResult.actualSize;
123
- let x : number = currentBounds.x;
124
- let y : number = currentBounds.y;
125
- let width : number = (currentBounds.width > 0) ? currentBounds.width : textSize.width;
126
- let height : number = textSize.height;
127
- let shiftedRect : RectangleF = currentPage.graphics.checkCorrectLayoutRectangle(textSize,
128
- currentBounds.x,
129
- currentBounds.y,
130
- this.format);
131
- // if (currentBounds.width <= 0) {
132
- x = shiftedRect.x;
133
- // }
134
- let verticalShift : number = currentPage.graphics.getTextVerticalAlignShift(textSize.height, currentBounds.height, this.format);
135
- y += verticalShift;
136
- let bounds : RectangleF = new RectangleF(x, y, width, height);
137
- return bounds;
138
- }
139
- /* tslint:enable */
140
- }
141
- export class TextPageLayoutResult {
142
- /**
143
- * The last `page` where the text was drawn.
144
- * @private
145
- */
146
- public page : PdfPage;
147
- /**
148
- * The `bounds` of the element on the last page where it was drawn.
149
- * @private
150
- */
151
- public bounds : RectangleF;
152
- /**
153
- * Indicates whether the lay outing has been finished [`end`].
154
- * @private
155
- */
156
- public end : boolean;
157
- /**
158
- * The `text` that was not printed.
159
- * @private
160
- */
161
- public remainder : string;
162
- /**
163
- * Gets or sets a `bounds` of the last text line that was printed.
164
- * @private
165
- */
166
- public lastLineBounds : RectangleF;
167
- }
168
- export class PdfTextLayoutResult extends PdfLayoutResult {
169
- // Fields
170
- /**
171
- * The `text` that was not printed.
172
- * @private
173
- */
174
- private remainderText : string;
175
- /**
176
- * The `bounds` of the last line that was printed.
177
- * @private
178
- */
179
- private lastLineTextBounds : RectangleF;
180
- // Properties
181
- /**
182
- * Gets a value that contains the `text` that was not printed.
183
- * @private
184
- */
185
- public get remainder() : string {
186
- return this.remainderText;
187
- }
188
- /**
189
- * Gets a value that indicates the `bounds` of the last line that was printed on the page.
190
- * @private
191
- */
192
- public get lastLineBounds() : RectangleF {
193
- return this.lastLineTextBounds;
194
- }
195
- // Constructors
196
- /**
197
- * Initializes the new instance of `PdfTextLayoutResult` class.
198
- * @private
199
- */
200
- public constructor(page : PdfPage, bounds : RectangleF, remainder : string, lastLineBounds : RectangleF) {
201
- super(page, bounds);
202
- this.remainderText = remainder;
203
- this.lastLineTextBounds = lastLineBounds;
204
- }
205
- }
@@ -1,76 +0,0 @@
1
- /**
2
- * ellipse-part.ts class for EJ2-PDF
3
- */
4
- import { PdfBrush } from './../brushes/pdf-brush';
5
- import { PdfPen } from './../pdf-pen';
6
- import { RectangleF } from './../../drawing/pdf-drawing';
7
- import { PdfRectangleArea } from './rectangle-area';
8
- /**
9
- * `PdfEllipsePart` class Implements graphics ellipse part, which is a sequence of primitive graphics elements.
10
- * @private
11
- */
12
- export abstract class PdfEllipsePart extends PdfRectangleArea {
13
- // Fields
14
- /**
15
- * public variable to store the start angle.
16
- * @public
17
- */
18
- public startAngle: number = 0;
19
- /**
20
- * public variable to store the sweep angle.
21
- * @public
22
- */
23
- public sweepAngle: number = 0;
24
- // Constructor
25
- /**
26
- * Initializes a new instance of the `PdfEllipsePart` class.
27
- * @protected
28
- */
29
- protected constructor ()
30
- /**
31
- * Initializes a new instance of the `PdfEllipsePart` class.
32
- * @protected
33
- */
34
- protected constructor (x: number, y: number, width: number, height: number, startAngle: number, sweepAngle: number)
35
- /**
36
- * Initializes a new instance of the `PdfEllipsePart` class.
37
- * @protected
38
- */
39
- protected constructor (rectangle: RectangleF, startAngle: number, sweepAngle: number)
40
- /**
41
- * Initializes a new instance of the `PdfEllipsePart` class.
42
- * @protected
43
- */
44
- /* tslint:disable-next-line:max-line-length */
45
- protected constructor (pen: PdfPen, brush: PdfBrush, x: number, y: number, width: number, height: number, startAngle: number, sweepAngle: number)
46
- /**
47
- * Initializes a new instance of the `PdfEllipsePart` class.
48
- * @protected
49
- */
50
- protected constructor (pen: PdfPen, brush: PdfBrush, rectangle: RectangleF, startAngle: number, sweepAngle: number)
51
- /* tslint:disable-next-line:max-line-length */
52
- protected constructor (arg1?: PdfPen|RectangleF|number, arg2?: PdfBrush|number, arg3?: number|RectangleF, arg4?: number, arg5?: number, arg6?: number, arg7?: number, arg8?: number) {
53
- super();
54
- if ( typeof arg1 === 'undefined') {
55
- //
56
- } else if (arg1 instanceof RectangleF && typeof arg2 !== 'undefined' && typeof arg3 !== 'undefined') {
57
- super(arg1);
58
- this.startAngle = arg2 as number;
59
- this.sweepAngle = arg3 as number;
60
- } else if (arg1 instanceof PdfPen) {
61
- if (arg3 instanceof RectangleF) {
62
- super(arg1, arg2 as PdfBrush, arg3);
63
- this.startAngle = arg4 as number;
64
- this.sweepAngle = arg5 as number;
65
- } else {
66
- super(arg1, arg2 as PdfBrush, arg3, arg4, arg5, arg6);
67
- this.startAngle = arg7 as number;
68
- this.sweepAngle = arg8 as number;
69
- }
70
- } else {
71
- super(arg1 as number, arg2 as number, arg3 as number, arg4 as number);
72
- this.startAngle = arg5 as number;
73
- this.sweepAngle = arg6 as number;
74
- }
75
- }
76
- }
@@ -1,80 +0,0 @@
1
- /**
2
- * public Enum for `PdfLayoutType`.
3
- * @private
4
- */
5
- export enum PdfLayoutType {
6
- /**
7
- * Specifies the type of `Paginate`.
8
- * @private
9
- */
10
- Paginate,
11
- /**
12
- * Specifies the type of `OnePage`.
13
- * @private
14
- */
15
- OnePage
16
- }
17
- /**
18
- * public Enum for `PdfLayoutBreakType`.
19
- * @private
20
- */
21
- export enum PdfLayoutBreakType {
22
- /**
23
- * Specifies the type of `FitPage`.
24
- * @private
25
- */
26
- FitPage,
27
- /**
28
- * Specifies the type of `FitElement`.
29
- * @private
30
- */
31
- FitElement,
32
- /**
33
- * Specifies the type of `FitColumnsToPage`.
34
- * @private
35
- */
36
- FitColumnsToPage
37
- }
38
-
39
- export enum PathPointType {
40
- /**
41
- * Specifies the path point type of `Start`.
42
- * @private
43
- */
44
- Start = 0,
45
- /**
46
- * Specifies the path point type of `Line`.
47
- * @private
48
- */
49
- Line = 1,
50
- /**
51
- * Specifies the path point type of `Bezier3`.
52
- * @private
53
- */
54
- Bezier3 = 3,
55
- /**
56
- * Specifies the path point type of `Bezier`.
57
- * @private
58
- */
59
- Bezier = 3,
60
- /**
61
- * Specifies the path point type of `PathTypeMask`.
62
- * @private
63
- */
64
- PathTypeMask = 7,
65
- /**
66
- * Specifies the path point type of `DashMode`.
67
- * @private
68
- */
69
- DashMode = 16,
70
- /**
71
- * Specifies the path point type of `PathMarker`.
72
- * @private
73
- */
74
- PathMarker = 32,
75
- /**
76
- * Specifies the path point type of `CloseSubpath`.
77
- * @private
78
- */
79
- CloseSubpath = 128,
80
- }