@syncfusion/ej2-pdf-export 19.3.43 → 19.3.53

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