@syncfusion/ej2-pdf-export 19.3.43 → 19.4.43

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