@syncfusion/ej2-pdf-export 20.2.36 → 20.2.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/ej2-pdf-export.umd.min.js +1 -1
  2. package/dist/global/ej2-pdf-export.min.js +1 -1
  3. package/dist/global/index.d.ts +1 -1
  4. package/package.json +6 -6
  5. package/dist/ts/implementation/actions/action.ts +0 -76
  6. package/dist/ts/implementation/actions/uri-action.ts +0 -52
  7. package/dist/ts/implementation/annotations/action-link-annotation.ts +0 -43
  8. package/dist/ts/implementation/annotations/annotation-collection.ts +0 -159
  9. package/dist/ts/implementation/annotations/annotation.ts +0 -241
  10. package/dist/ts/implementation/annotations/document-link-annotation.ts +0 -118
  11. package/dist/ts/implementation/annotations/link-annotation.ts +0 -32
  12. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +0 -265
  13. package/dist/ts/implementation/annotations/uri-annotation.ts +0 -86
  14. package/dist/ts/implementation/collections/dictionary.ts +0 -150
  15. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +0 -125
  16. package/dist/ts/implementation/collections/utils.ts +0 -38
  17. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +0 -39
  18. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +0 -108
  19. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +0 -127
  20. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +0 -76
  21. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +0 -37
  22. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +0 -75
  23. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +0 -157
  24. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +0 -82
  25. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +0 -60
  26. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +0 -48
  27. package/dist/ts/implementation/document/pdf-catalog.ts +0 -52
  28. package/dist/ts/implementation/document/pdf-document-base.ts +0 -166
  29. package/dist/ts/implementation/document/pdf-document-template.ts +0 -310
  30. package/dist/ts/implementation/document/pdf-document.ts +0 -342
  31. package/dist/ts/implementation/drawing/pdf-drawing.ts +0 -218
  32. package/dist/ts/implementation/general/enum.ts +0 -21
  33. package/dist/ts/implementation/general/functions/pdf-function.ts +0 -66
  34. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +0 -62
  35. package/dist/ts/implementation/general/pdf-cache-collection.ts +0 -97
  36. package/dist/ts/implementation/general/pdf-collection.ts +0 -41
  37. package/dist/ts/implementation/general/pdf-destination.ts +0 -170
  38. package/dist/ts/implementation/graphics/brushes/enum.ts +0 -237
  39. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +0 -294
  40. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +0 -68
  41. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +0 -2438
  42. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +0 -295
  43. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +0 -311
  44. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +0 -406
  45. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +0 -290
  46. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +0 -107
  47. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +0 -304
  48. package/dist/ts/implementation/graphics/constants.ts +0 -31
  49. package/dist/ts/implementation/graphics/enum.ts +0 -413
  50. package/dist/ts/implementation/graphics/figures/arc.ts +0 -133
  51. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +0 -59
  52. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +0 -260
  53. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +0 -72
  54. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +0 -34
  55. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +0 -69
  56. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +0 -276
  57. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +0 -205
  58. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +0 -76
  59. package/dist/ts/implementation/graphics/figures/enum.ts +0 -80
  60. package/dist/ts/implementation/graphics/figures/layout-element.ts +0 -132
  61. package/dist/ts/implementation/graphics/figures/path.ts +0 -646
  62. package/dist/ts/implementation/graphics/figures/pdf-template.ts +0 -205
  63. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +0 -108
  64. package/dist/ts/implementation/graphics/figures/text-element.ts +0 -445
  65. package/dist/ts/implementation/graphics/fonts/enum.ts +0 -385
  66. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +0 -248
  67. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +0 -316
  68. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +0 -606
  69. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +0 -243
  70. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +0 -474
  71. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +0 -165
  72. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +0 -958
  73. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +0 -374
  74. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +0 -255
  75. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +0 -617
  76. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +0 -275
  77. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +0 -206
  78. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +0 -18
  79. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +0 -18
  80. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +0 -14
  81. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +0 -26
  82. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +0 -35
  83. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +0 -94
  84. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +0 -56
  85. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +0 -10
  86. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +0 -14
  87. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +0 -106
  88. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +0 -58
  89. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +0 -33
  90. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +0 -22
  91. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +0 -42
  92. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +0 -1254
  93. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +0 -26
  94. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +0 -26
  95. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +0 -577
  96. package/dist/ts/implementation/graphics/images/byte-array.ts +0 -137
  97. package/dist/ts/implementation/graphics/images/image-decoder.ts +0 -437
  98. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +0 -110
  99. package/dist/ts/implementation/graphics/images/pdf-image.ts +0 -132
  100. package/dist/ts/implementation/graphics/pdf-color.ts +0 -478
  101. package/dist/ts/implementation/graphics/pdf-graphics.ts +0 -2424
  102. package/dist/ts/implementation/graphics/pdf-margins.ts +0 -124
  103. package/dist/ts/implementation/graphics/pdf-pen.ts +0 -370
  104. package/dist/ts/implementation/graphics/pdf-resources.ts +0 -300
  105. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +0 -246
  106. package/dist/ts/implementation/graphics/pdf-transparency.ts +0 -93
  107. package/dist/ts/implementation/graphics/unit-convertor.ts +0 -96
  108. package/dist/ts/implementation/input-output/big-endian-writer.ts +0 -121
  109. package/dist/ts/implementation/input-output/cross-table.ts +0 -21
  110. package/dist/ts/implementation/input-output/enum.ts +0 -16
  111. package/dist/ts/implementation/input-output/pdf-cross-table.ts +0 -524
  112. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +0 -515
  113. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +0 -194
  114. package/dist/ts/implementation/input-output/pdf-operators.ts +0 -363
  115. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +0 -681
  116. package/dist/ts/implementation/input-output/pdf-writer.ts +0 -88
  117. package/dist/ts/implementation/pages/enum.ts +0 -201
  118. package/dist/ts/implementation/pages/page-added-event-arguments.ts +0 -39
  119. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +0 -180
  120. package/dist/ts/implementation/pages/pdf-page-base.ts +0 -181
  121. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +0 -348
  122. package/dist/ts/implementation/pages/pdf-page-layer.ts +0 -271
  123. package/dist/ts/implementation/pages/pdf-page-settings.ts +0 -192
  124. package/dist/ts/implementation/pages/pdf-page-size.ts +0 -162
  125. package/dist/ts/implementation/pages/pdf-page-template-element.ts +0 -659
  126. package/dist/ts/implementation/pages/pdf-page.ts +0 -235
  127. package/dist/ts/implementation/pages/pdf-section-collection.ts +0 -187
  128. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +0 -61
  129. package/dist/ts/implementation/pages/pdf-section-templates.ts +0 -96
  130. package/dist/ts/implementation/pages/pdf-section.ts +0 -644
  131. package/dist/ts/implementation/primitives/pdf-array.ts +0 -386
  132. package/dist/ts/implementation/primitives/pdf-boolean.ts +0 -119
  133. package/dist/ts/implementation/primitives/pdf-dictionary.ts +0 -513
  134. package/dist/ts/implementation/primitives/pdf-name.ts +0 -218
  135. package/dist/ts/implementation/primitives/pdf-number.ts +0 -165
  136. package/dist/ts/implementation/primitives/pdf-reference.ts +0 -430
  137. package/dist/ts/implementation/primitives/pdf-stream.ts +0 -336
  138. package/dist/ts/implementation/primitives/pdf-string.ts +0 -397
  139. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +0 -2027
  140. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +0 -1189
  141. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +0 -206
  142. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +0 -470
  143. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +0 -853
  144. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +0 -240
  145. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +0 -424
  146. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +0 -16
  147. package/dist/ts/interfaces/i-pdf-cache.ts +0 -23
  148. package/dist/ts/interfaces/i-pdf-changable.ts +0 -17
  149. package/dist/ts/interfaces/i-pdf-clonable.ts +0 -12
  150. package/dist/ts/interfaces/i-pdf-primitives.ts +0 -45
  151. package/dist/ts/interfaces/i-pdf-true-type-font.ts +0 -48
  152. package/dist/ts/interfaces/i-pdf-wrapper.ts +0 -13
  153. package/dist/ts/interfaces/i-pdf-writer.ts +0 -29
@@ -1,124 +0,0 @@
1
- /**
2
- * PdfMargins.ts class for EJ2-PDF
3
- * A class representing PDF page margins.
4
- */
5
- export class PdfMargins {
6
- /**
7
- * Represents the `Left margin` value.
8
- * @private
9
- */
10
- private leftMargin : number;
11
- /**
12
- * Represents the `Top margin` value.
13
- * @private
14
- */
15
- private topMargin : number;
16
- /**
17
- * Represents the `Right margin` value.
18
- * @private
19
- */
20
- private rightMargin : number;
21
- /**
22
- * Represents the `Bottom margin` value.
23
- * @private
24
- */
25
- private bottomMargin : number;
26
- /**
27
- * Represents the `Default Page Margin` value.
28
- * @default 0.0
29
- * @private
30
- */
31
- private readonly pdfMargin : number = 40.0;
32
- /**
33
- * Initializes a new instance of the `PdfMargins` class.
34
- * @private
35
- */
36
- constructor() {
37
- this.setMargins(this.pdfMargin);
38
- }
39
- //Properties
40
- /**
41
- * Gets or sets the `left margin` size.
42
- * @private
43
- */
44
- public get left() : number {
45
- return this.leftMargin;
46
- }
47
- public set left(value : number) {
48
- this.leftMargin = value;
49
- }
50
- /**
51
- * Gets or sets the `top margin` size.
52
- * @private
53
- */
54
- public get top() : number {
55
- return this.topMargin;
56
- }
57
- public set top(value : number) {
58
- this.topMargin = value;
59
- }
60
- /**
61
- * Gets or sets the `right margin` size.
62
- * @private
63
- */
64
- public get right() : number {
65
- return this.rightMargin;
66
- }
67
- public set right(value : number) {
68
- this.rightMargin = value;
69
- }
70
- /**
71
- * Gets or sets the `bottom margin` size.
72
- * @private
73
- */
74
- public get bottom() : number {
75
- return this.bottomMargin;
76
- }
77
- public set bottom(value : number) {
78
- this.bottomMargin = value;
79
- }
80
- /**
81
- * Sets the `margins`.
82
- * @private
83
- */
84
- public set all(value : number) {
85
- this.setMargins(value);
86
- }
87
- /**
88
- * Sets the `margins`.
89
- * @private
90
- */
91
- public setMargins(margin1 : number) : void
92
- /**
93
- * Sets the `margins`.
94
- * @private
95
- */
96
- public setMargins(margin1 : number, margin2 : number) : void
97
- /**
98
- * Sets the `margins`.
99
- * @private
100
- */
101
- public setMargins(margin1 : number, margin2 : number, margin3 : number, margin4 : number) : void
102
- public setMargins(margin1 : number, margin2? : number, margin3? : number, margin4? : number) : void {
103
- if (typeof margin2 === 'undefined') {
104
- this.leftMargin = this.topMargin = this.rightMargin = this.bottomMargin = margin1;
105
- } else {
106
- if (typeof margin3 === 'undefined') {
107
- this.leftMargin = this.rightMargin = margin1;
108
- this.bottomMargin = this.topMargin = margin2;
109
- } else {
110
- this.leftMargin = margin1;
111
- this.topMargin = margin2;
112
- this.rightMargin = margin3;
113
- this.bottomMargin = margin4;
114
- }
115
- }
116
- }
117
- /**
118
- * `Clones` the object.
119
- * @private
120
- */
121
- public clone() : PdfMargins {
122
- return this;
123
- }
124
- }
@@ -1,370 +0,0 @@
1
- /**
2
- * PdfPen.ts class for EJ2-PDF
3
- */
4
- import { PdfColor } from './pdf-color';
5
- import { PdfSolidBrush } from './brushes/pdf-solid-brush';
6
- import { PdfDashStyle, PdfLineCap, PdfLineJoin, PdfColorSpace } from './enum';
7
- import { PdfBrush } from './brushes/pdf-brush';
8
- import { GetResourceEventHandler } from './pdf-graphics';
9
- import { PdfTransformationMatrix } from './pdf-transformation-matrix';
10
- import { PdfStreamWriter } from './../input-output/pdf-stream-writer';
11
- /**
12
- * `PdfPen` class defining settings for drawing operations, that determines the color,
13
- * width, and style of the drawing elements.
14
- * ```typescript
15
- * // create a new PDF document
16
- * let document : PdfDocument = new PdfDocument();
17
- * // create a new page
18
- * let page1 : PdfPage = document.pages.add();
19
- * // set pen
20
- * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));
21
- * // draw rectangle
22
- * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));
23
- * // save the document.
24
- * document.save('output.pdf');
25
- * // destroy the document
26
- * document.destroy();
27
- * ```
28
- */
29
- export class PdfPen {
30
- //Fields
31
- /**
32
- * Specifies the `color of the pen`.
33
- * @default new PdfColor()
34
- * @private
35
- */
36
- private pdfColor : PdfColor = new PdfColor(0, 0, 0);
37
- /**
38
- * Specifies the `dash offset of the pen`.
39
- * @default 0
40
- * @private
41
- */
42
- private dashOffsetValue : number = 0;
43
- /**
44
- * Specifies the `dash pattern of the pen`.
45
- * @default [0]
46
- * @private
47
- */
48
- private penDashPattern : number[] = [0];
49
- /**
50
- * Specifies the `dash style of the pen`.
51
- * @default Solid
52
- * @private
53
- */
54
- private pdfDashStyle : PdfDashStyle = PdfDashStyle.Solid;
55
- /**
56
- * Specifies the `line cap of the pen`.
57
- * @default 0
58
- * @private
59
- */
60
- private pdfLineCap : PdfLineCap = 0;
61
- /**
62
- * Specifies the `line join of the pen`.
63
- * @default 0
64
- * @private
65
- */
66
- private pdfLineJoin : PdfLineJoin = 0;
67
- /**
68
- * Specifies the `width of the pen`.
69
- * @default 1.0
70
- * @private
71
- */
72
- private penWidth : number = 1.0;
73
- /**
74
- * Specifies the `brush of the pen`.
75
- * @private
76
- */
77
- private pdfBrush : PdfBrush;
78
- /**
79
- * Specifies the `mitter limit of the pen`.
80
- * @default 0.0
81
- * @private
82
- */
83
- private internalMiterLimit : number = 0.0;
84
- /**
85
- * Stores the `colorspace` value.
86
- * @default Rgb
87
- * @private
88
- */
89
- private colorSpace : PdfColorSpace = PdfColorSpace.Rgb;
90
-
91
- /**
92
- * Initializes a new instance of the `PdfPen` class with color.
93
- * ```typescript
94
- * // create a new PDF document
95
- * let document : PdfDocument = new PdfDocument();
96
- * // create a new page
97
- * let page1 : PdfPage = document.pages.add();
98
- * //
99
- * // set pen
100
- * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));
101
- * //
102
- * // draw rectangle
103
- * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));
104
- * // save the document.
105
- * document.save('output.pdf');
106
- * // destroy the document
107
- * document.destroy();
108
- * ```
109
- * @param color Color of the pen.
110
- */
111
- public constructor(color : PdfColor)
112
- /**
113
- * Initializes a new instance of the `PdfPen` class with 'PdfBrush' class and width of the pen.
114
- * @private
115
- */
116
- public constructor(brush : PdfBrush, width : number)
117
- /**
118
- * Initializes a new instance of the `PdfPen` class with color and width of the pen.
119
- * ```typescript
120
- * // create a new PDF document
121
- * let document : PdfDocument = new PdfDocument();
122
- * // create a new page
123
- * let page1 : PdfPage = document.pages.add();
124
- * //
125
- * // set pen
126
- * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0), 2);
127
- * //
128
- * // draw rectangle
129
- * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));
130
- * // save the document.
131
- * document.save('output.pdf');
132
- * // destroy the document
133
- * document.destroy();
134
- * ```
135
- * @param color Color of the pen.
136
- * @param width Width of the pen's line.
137
- */
138
- public constructor(color : PdfColor, width : number)
139
- public constructor(arg1 : PdfColor|PdfBrush, arg2? : number) {
140
- if ( arg1 instanceof PdfBrush) {
141
- this.setBrush(arg1 as PdfBrush);
142
- } else if ( arg1 instanceof PdfColor) {
143
- this.color = arg1;
144
- }
145
- if (typeof arg2 === 'number') {
146
- this.width = arg2;
147
- }
148
- }
149
- //Properties
150
- /**
151
- * Gets or sets the `color of the pen`.
152
- * @private
153
- */
154
- public get color() : PdfColor {
155
- return this.pdfColor;
156
- }
157
- public set color(value : PdfColor) {
158
- this.pdfColor = value;
159
- }
160
- /**
161
- * Gets or sets the `dash offset of the pen`.
162
- * @private
163
- */
164
- public get dashOffset() : number {
165
- if (typeof this.dashOffsetValue === 'undefined' || this.dashOffsetValue == null) {
166
- return 0;
167
- } else {
168
- return this.dashOffsetValue;
169
- }
170
- }
171
- public set dashOffset(value : number) {
172
- this.dashOffsetValue = value;
173
- }
174
- /**
175
- * Gets or sets the `dash pattern of the pen`.
176
- * @private
177
- */
178
- public get dashPattern() : number[] {
179
- return this.penDashPattern;
180
- }
181
- public set dashPattern(value : number[]) {
182
- this.penDashPattern = value;
183
- }
184
- /**
185
- * Gets or sets the `dash style of the pen`.
186
- * ```typescript
187
- * // create a new PDF document
188
- * let document : PdfDocument = new PdfDocument();
189
- * // create a new page
190
- * let page1 : PdfPage = document.pages.add();
191
- * // set pen
192
- * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));
193
- * //
194
- * // set pen style
195
- * pen.dashStyle = PdfDashStyle.DashDot;
196
- * // get pen style
197
- * let style : PdfDashStyle = pen.dashStyle;
198
- * //
199
- * // draw rectangle
200
- * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));
201
- * // save the document.
202
- * document.save('output.pdf');
203
- * // destroy the document
204
- * document.destroy();
205
- * ```
206
- */
207
- public get dashStyle() : PdfDashStyle {
208
- return this.pdfDashStyle;
209
- }
210
- public set dashStyle(value : PdfDashStyle) {
211
- if (this.pdfDashStyle !== value) {
212
- this.pdfDashStyle = value;
213
-
214
- switch (this.pdfDashStyle) {
215
- case PdfDashStyle.Custom:
216
- break;
217
-
218
- case PdfDashStyle.Dash:
219
- this.penDashPattern = [3, 1];
220
- break;
221
-
222
- case PdfDashStyle.Dot:
223
- this.penDashPattern = [1, 1];
224
- break;
225
-
226
- case PdfDashStyle.DashDot:
227
- this.penDashPattern = [3, 1, 1, 1];
228
- break;
229
-
230
- case PdfDashStyle.DashDotDot:
231
- this.penDashPattern = [3, 1, 1, 1, 1, 1];
232
- break;
233
-
234
- case PdfDashStyle.Solid:
235
- break;
236
- default:
237
- this.pdfDashStyle = PdfDashStyle.Solid;
238
- this.penDashPattern = [0];
239
- break;
240
- }
241
- }
242
- }
243
- /**
244
- * Gets or sets the `line cap of the pen`.
245
- * @private
246
- */
247
- public get lineCap() : PdfLineCap {
248
- return this.pdfLineCap;
249
- }
250
- public set lineCap(value : PdfLineCap) {
251
- this.pdfLineCap = value;
252
- }
253
- /**
254
- * Gets or sets the `line join style of the pen`.
255
- * @private
256
- */
257
- public get lineJoin() : PdfLineJoin {
258
- return this.pdfLineJoin;
259
- }
260
- public set lineJoin(value : PdfLineJoin) {
261
- this.pdfLineJoin = value;
262
- }
263
- /**
264
- * Gets or sets the `miter limit`.
265
- * @private
266
- */
267
- public get miterLimit() : number {
268
- return this.internalMiterLimit;
269
- }
270
- public set miterLimit(value : number) {
271
- this.internalMiterLimit = value;
272
- }
273
- /**
274
- * Gets or sets the `width of the pen`.
275
- * ```typescript
276
- * // create a new PDF document
277
- * let document : PdfDocument = new PdfDocument();
278
- * // create a new page
279
- * let page1 : PdfPage = document.pages.add();
280
- * // set pen
281
- * let pen : PdfPen = new PdfPen(new PdfColor(0, 0, 0));
282
- * //
283
- * // set pen width
284
- * pen.width = 2;
285
- * //
286
- * // draw rectangle
287
- * page1.graphics.drawRectangle(pen, new RectangleF({x : 0, y : 0}, {width : 100, height : 50}));
288
- * // save the document.
289
- * document.save('output.pdf');
290
- * // destroy the document
291
- * document.destroy();
292
- * ```
293
- */
294
- public get width() : number {
295
- return this.penWidth;
296
- }
297
- public set width(value : number) {
298
- this.penWidth = value;
299
- }
300
-
301
- //Helper
302
- /**
303
- * `Clones` this instance of PdfPen class.
304
- * @private
305
- */
306
- public clone() : PdfPen {
307
- let pen : PdfPen = this;
308
- return pen;
309
- }
310
- /**
311
- * `Sets the brush`.
312
- * @private
313
- */
314
- private setBrush(brush : PdfBrush) : void {
315
- let sBrush : PdfSolidBrush = brush as PdfSolidBrush;
316
- if ((sBrush != null && sBrush instanceof PdfSolidBrush)) {
317
- this.color = sBrush.color;
318
- this.pdfBrush = sBrush;
319
- }
320
- this.color = sBrush.color;
321
- this.pdfBrush = sBrush;
322
- }
323
- /**
324
- * `Monitors the changes`.
325
- * @private
326
- */
327
- public monitorChanges(currentPen : PdfPen, streamWriter : PdfStreamWriter, getResources : GetResourceEventHandler,
328
- saveState : boolean, currentColorSpace : PdfColorSpace, matrix : PdfTransformationMatrix) : boolean {
329
- let diff : boolean = false;
330
- saveState = true;
331
- if (currentPen == null) {
332
- diff = true;
333
- }
334
- diff = this.dashControl(currentPen, saveState, streamWriter);
335
- streamWriter.setLineWidth(this.width);
336
- streamWriter.setLineJoin(this.lineJoin);
337
- streamWriter.setLineCap(this.lineCap);
338
- let miterLimit : number = this.miterLimit;
339
- if (miterLimit > 0) {
340
- streamWriter.setMiterLimit(miterLimit);
341
- diff = true;
342
- }
343
- let brush : PdfBrush = this.pdfBrush;
344
- streamWriter.setColorAndSpace(this.color, currentColorSpace, true);
345
- diff = true;
346
- return diff;
347
- }
348
- /**
349
- * `Controls the dash style` and behaviour of each line.
350
- * @private
351
- */
352
- private dashControl(pen : PdfPen, saveState : boolean, streamWriter : PdfStreamWriter) : boolean {
353
- saveState = true;
354
- let lineWidth : number = this.width;
355
- let pattern : number[] = this.getPattern();
356
- streamWriter.setLineDashPattern(pattern, this.dashOffset * lineWidth);
357
- return saveState;
358
- }
359
- /**
360
- * `Gets the pattern` of PdfPen.
361
- * @private
362
- */
363
- public getPattern() : number[] {
364
- let pattern : number[] = this.dashPattern as number[];
365
- for (let i : number = 0; i < pattern.length; ++i) {
366
- pattern[i] *= this.width;
367
- }
368
- return pattern;
369
- }
370
- }