Showing
5 changed files
with
57 additions
and
36 deletions
@@ -41,8 +41,8 @@ abstract class BoxBorder { | @@ -41,8 +41,8 @@ abstract class BoxBorder { | ||
41 | BorderRadius? borderRadius, | 41 | BorderRadius? borderRadius, |
42 | }); | 42 | }); |
43 | 43 | ||
44 | - static void _setStyle(Context context, BorderStyle? style) { | ||
45 | - switch (style!) { | 44 | + static void setStyle(Context context, BorderStyle style) { |
45 | + switch (style) { | ||
46 | case BorderStyle.none: | 46 | case BorderStyle.none: |
47 | case BorderStyle.solid: | 47 | case BorderStyle.solid: |
48 | break; | 48 | break; |
@@ -59,8 +59,8 @@ abstract class BoxBorder { | @@ -59,8 +59,8 @@ abstract class BoxBorder { | ||
59 | } | 59 | } |
60 | } | 60 | } |
61 | 61 | ||
62 | - static void _unsetStyle(Context context, BorderStyle? style) { | ||
63 | - switch (style!) { | 62 | + static void unsetStyle(Context context, BorderStyle style) { |
63 | + switch (style) { | ||
64 | case BorderStyle.none: | 64 | case BorderStyle.none: |
65 | case BorderStyle.solid: | 65 | case BorderStyle.solid: |
66 | break; | 66 | break; |
@@ -73,40 +73,40 @@ abstract class BoxBorder { | @@ -73,40 +73,40 @@ abstract class BoxBorder { | ||
73 | 73 | ||
74 | static void _paintUniformBorderWithCircle( | 74 | static void _paintUniformBorderWithCircle( |
75 | Context context, PdfRect box, BorderSide side) { | 75 | Context context, PdfRect box, BorderSide side) { |
76 | - _setStyle(context, side.style); | 76 | + setStyle(context, side.style); |
77 | context.canvas | 77 | context.canvas |
78 | ..setStrokeColor(side.color) | 78 | ..setStrokeColor(side.color) |
79 | - ..setLineWidth(side.width!) | 79 | + ..setLineWidth(side.width) |
80 | ..drawEllipse(box.x + box.width / 2.0, box.y + box.height / 2.0, | 80 | ..drawEllipse(box.x + box.width / 2.0, box.y + box.height / 2.0, |
81 | box.width / 2.0, box.height / 2.0) | 81 | box.width / 2.0, box.height / 2.0) |
82 | ..strokePath(); | 82 | ..strokePath(); |
83 | - _unsetStyle(context, side.style); | 83 | + unsetStyle(context, side.style); |
84 | } | 84 | } |
85 | 85 | ||
86 | static void _paintUniformBorderWithRadius(Context context, PdfRect box, | 86 | static void _paintUniformBorderWithRadius(Context context, PdfRect box, |
87 | BorderSide side, BorderRadius borderRadius) { | 87 | BorderSide side, BorderRadius borderRadius) { |
88 | - _setStyle(context, side.style); | 88 | + setStyle(context, side.style); |
89 | context.canvas | 89 | context.canvas |
90 | ..setLineJoin(PdfLineJoin.miter) | 90 | ..setLineJoin(PdfLineJoin.miter) |
91 | ..setMiterLimit(4) | 91 | ..setMiterLimit(4) |
92 | ..setStrokeColor(side.color) | 92 | ..setStrokeColor(side.color) |
93 | - ..setLineWidth(side.width!); | 93 | + ..setLineWidth(side.width); |
94 | borderRadius.paint(context, box); | 94 | borderRadius.paint(context, box); |
95 | context.canvas.strokePath(); | 95 | context.canvas.strokePath(); |
96 | - _unsetStyle(context, side.style); | 96 | + unsetStyle(context, side.style); |
97 | } | 97 | } |
98 | 98 | ||
99 | static void _paintUniformBorderWithRectangle( | 99 | static void _paintUniformBorderWithRectangle( |
100 | Context context, PdfRect box, BorderSide side) { | 100 | Context context, PdfRect box, BorderSide side) { |
101 | - _setStyle(context, side.style); | 101 | + setStyle(context, side.style); |
102 | context.canvas | 102 | context.canvas |
103 | ..setLineJoin(PdfLineJoin.miter) | 103 | ..setLineJoin(PdfLineJoin.miter) |
104 | ..setMiterLimit(4) | 104 | ..setMiterLimit(4) |
105 | ..setStrokeColor(side.color) | 105 | ..setStrokeColor(side.color) |
106 | - ..setLineWidth(side.width!) | 106 | + ..setLineWidth(side.width) |
107 | ..drawBox(box) | 107 | ..drawBox(box) |
108 | ..strokePath(); | 108 | ..strokePath(); |
109 | - _unsetStyle(context, side.style); | 109 | + unsetStyle(context, side.style); |
110 | } | 110 | } |
111 | } | 111 | } |
112 | 112 | ||
@@ -124,13 +124,13 @@ class BorderSide { | @@ -124,13 +124,13 @@ class BorderSide { | ||
124 | BorderSide(width: 0.0, style: BorderStyle.none); | 124 | BorderSide(width: 0.0, style: BorderStyle.none); |
125 | 125 | ||
126 | /// The color of this side of the border. | 126 | /// The color of this side of the border. |
127 | - final PdfColor? color; | 127 | + final PdfColor color; |
128 | 128 | ||
129 | /// The width of this side of the border. | 129 | /// The width of this side of the border. |
130 | - final double? width; | 130 | + final double width; |
131 | 131 | ||
132 | /// The style of this side of the border. | 132 | /// The style of this side of the border. |
133 | - final BorderStyle? style; | 133 | + final BorderStyle style; |
134 | 134 | ||
135 | BorderSide copyWith({ | 135 | BorderSide copyWith({ |
136 | PdfColor? color, | 136 | PdfColor? color, |
@@ -138,9 +138,9 @@ class BorderSide { | @@ -138,9 +138,9 @@ class BorderSide { | ||
138 | BorderStyle? style, | 138 | BorderStyle? style, |
139 | }) => | 139 | }) => |
140 | BorderSide( | 140 | BorderSide( |
141 | - color: color, | ||
142 | - width: width, | ||
143 | - style: style, | 141 | + color: color ?? this.color, |
142 | + width: width ?? this.width, | ||
143 | + style: style ?? this.style, | ||
144 | ); | 144 | ); |
145 | 145 | ||
146 | @override | 146 | @override |
@@ -252,43 +252,43 @@ class Border extends BoxBorder { | @@ -252,43 +252,43 @@ class Border extends BoxBorder { | ||
252 | ..setLineJoin(PdfLineJoin.miter); | 252 | ..setLineJoin(PdfLineJoin.miter); |
253 | 253 | ||
254 | if (top.style != BorderStyle.none) { | 254 | if (top.style != BorderStyle.none) { |
255 | - BoxBorder._setStyle(context, top.style); | 255 | + BoxBorder.setStyle(context, top.style); |
256 | context.canvas | 256 | context.canvas |
257 | ..setStrokeColor(top.color) | 257 | ..setStrokeColor(top.color) |
258 | - ..setLineWidth(top.width!) | 258 | + ..setLineWidth(top.width) |
259 | ..drawLine(box.left, box.top, box.right, box.top) | 259 | ..drawLine(box.left, box.top, box.right, box.top) |
260 | ..strokePath(); | 260 | ..strokePath(); |
261 | - BoxBorder._unsetStyle(context, top.style); | 261 | + BoxBorder.unsetStyle(context, top.style); |
262 | } | 262 | } |
263 | 263 | ||
264 | if (right.style != BorderStyle.none) { | 264 | if (right.style != BorderStyle.none) { |
265 | - BoxBorder._setStyle(context, right.style); | 265 | + BoxBorder.setStyle(context, right.style); |
266 | context.canvas | 266 | context.canvas |
267 | ..setStrokeColor(right.color) | 267 | ..setStrokeColor(right.color) |
268 | - ..setLineWidth(right.width!) | 268 | + ..setLineWidth(right.width) |
269 | ..drawLine(box.right, box.top, box.right, box.bottom) | 269 | ..drawLine(box.right, box.top, box.right, box.bottom) |
270 | ..strokePath(); | 270 | ..strokePath(); |
271 | - BoxBorder._unsetStyle(context, right.style); | 271 | + BoxBorder.unsetStyle(context, right.style); |
272 | } | 272 | } |
273 | 273 | ||
274 | if (bottom.style != BorderStyle.none) { | 274 | if (bottom.style != BorderStyle.none) { |
275 | - BoxBorder._setStyle(context, bottom.style); | 275 | + BoxBorder.setStyle(context, bottom.style); |
276 | context.canvas | 276 | context.canvas |
277 | ..setStrokeColor(bottom.color) | 277 | ..setStrokeColor(bottom.color) |
278 | - ..setLineWidth(bottom.width!) | 278 | + ..setLineWidth(bottom.width) |
279 | ..drawLine(box.right, box.bottom, box.left, box.bottom) | 279 | ..drawLine(box.right, box.bottom, box.left, box.bottom) |
280 | ..strokePath(); | 280 | ..strokePath(); |
281 | - BoxBorder._unsetStyle(context, bottom.style); | 281 | + BoxBorder.unsetStyle(context, bottom.style); |
282 | } | 282 | } |
283 | 283 | ||
284 | if (left.style != BorderStyle.none) { | 284 | if (left.style != BorderStyle.none) { |
285 | - BoxBorder._setStyle(context, left.style); | 285 | + BoxBorder.setStyle(context, left.style); |
286 | context.canvas | 286 | context.canvas |
287 | ..setStrokeColor(left.color) | 287 | ..setStrokeColor(left.color) |
288 | - ..setLineWidth(left.width!) | 288 | + ..setLineWidth(left.width) |
289 | ..drawLine(box.left, box.top, box.left, box.bottom) | 289 | ..drawLine(box.left, box.top, box.left, box.bottom) |
290 | ..strokePath(); | 290 | ..strokePath(); |
291 | - BoxBorder._unsetStyle(context, left.style); | 291 | + BoxBorder.unsetStyle(context, left.style); |
292 | } | 292 | } |
293 | } | 293 | } |
294 | } | 294 | } |
@@ -271,36 +271,44 @@ class GridPaper extends SingleChildWidget { | @@ -271,36 +271,44 @@ class GridPaper extends SingleChildWidget { | ||
271 | } | 271 | } |
272 | 272 | ||
273 | if (border.left.style != BorderStyle.none) { | 273 | if (border.left.style != BorderStyle.none) { |
274 | + BoxBorder.setStyle(context, border.left.style); | ||
274 | context.canvas | 275 | context.canvas |
275 | ..setStrokeColor(border.left.color) | 276 | ..setStrokeColor(border.left.color) |
276 | - ..setLineWidth(border.left.width!) | 277 | + ..setLineWidth(border.left.width) |
277 | ..drawLine(box!.left + margin.left, box!.top, box!.left + margin.left, | 278 | ..drawLine(box!.left + margin.left, box!.top, box!.left + margin.left, |
278 | box!.bottom) | 279 | box!.bottom) |
279 | ..strokePath(); | 280 | ..strokePath(); |
281 | + BoxBorder.unsetStyle(context, border.left.style); | ||
280 | } | 282 | } |
281 | if (border.right.style != BorderStyle.none) { | 283 | if (border.right.style != BorderStyle.none) { |
284 | + BoxBorder.setStyle(context, border.right.style); | ||
282 | context.canvas | 285 | context.canvas |
283 | ..setStrokeColor(border.right.color) | 286 | ..setStrokeColor(border.right.color) |
284 | - ..setLineWidth(border.right.width!) | 287 | + ..setLineWidth(border.right.width) |
285 | ..drawLine(box!.right - margin.right, box!.top, | 288 | ..drawLine(box!.right - margin.right, box!.top, |
286 | box!.right - margin.right, box!.bottom) | 289 | box!.right - margin.right, box!.bottom) |
287 | ..strokePath(); | 290 | ..strokePath(); |
291 | + BoxBorder.unsetStyle(context, border.right.style); | ||
288 | } | 292 | } |
289 | if (border.top.style != BorderStyle.none) { | 293 | if (border.top.style != BorderStyle.none) { |
294 | + BoxBorder.setStyle(context, border.top.style); | ||
290 | context.canvas | 295 | context.canvas |
291 | ..setStrokeColor(border.top.color) | 296 | ..setStrokeColor(border.top.color) |
292 | - ..setLineWidth(border.top.width!) | 297 | + ..setLineWidth(border.top.width) |
293 | ..drawLine( | 298 | ..drawLine( |
294 | box!.left, box!.top - margin.top, box!.right, box!.top - margin.top) | 299 | box!.left, box!.top - margin.top, box!.right, box!.top - margin.top) |
295 | ..strokePath(); | 300 | ..strokePath(); |
301 | + BoxBorder.unsetStyle(context, border.top.style); | ||
296 | } | 302 | } |
297 | if (border.bottom.style != BorderStyle.none) { | 303 | if (border.bottom.style != BorderStyle.none) { |
304 | + BoxBorder.setStyle(context, border.bottom.style); | ||
298 | context.canvas | 305 | context.canvas |
299 | ..setStrokeColor(border.bottom.color) | 306 | ..setStrokeColor(border.bottom.color) |
300 | - ..setLineWidth(border.bottom.width!) | 307 | + ..setLineWidth(border.bottom.width) |
301 | ..drawLine(box!.left, box!.bottom + margin.bottom, box!.right, | 308 | ..drawLine(box!.left, box!.bottom + margin.bottom, box!.right, |
302 | box!.bottom + margin.bottom) | 309 | box!.bottom + margin.bottom) |
303 | ..strokePath(); | 310 | ..strokePath(); |
311 | + BoxBorder.unsetStyle(context, border.bottom.style); | ||
304 | } | 312 | } |
305 | 313 | ||
306 | context.canvas.restoreContext(); | 314 | context.canvas.restoreContext(); |
@@ -106,23 +106,32 @@ class TableBorder extends Border { | @@ -106,23 +106,32 @@ class TableBorder extends Border { | ||
106 | super.paint(context, box); | 106 | super.paint(context, box); |
107 | 107 | ||
108 | if (verticalInside.style != BorderStyle.none) { | 108 | if (verticalInside.style != BorderStyle.none) { |
109 | + BoxBorder.setStyle(context, verticalInside.style); | ||
109 | var offset = box.x; | 110 | var offset = box.x; |
110 | for (var width in widths!.sublist(0, widths.length - 1)) { | 111 | for (var width in widths!.sublist(0, widths.length - 1)) { |
111 | offset += width!; | 112 | offset += width!; |
112 | context.canvas.moveTo(offset, box.y); | 113 | context.canvas.moveTo(offset, box.y); |
113 | context.canvas.lineTo(offset, box.top); | 114 | context.canvas.lineTo(offset, box.top); |
114 | } | 115 | } |
116 | + context.canvas.setStrokeColor(verticalInside.color); | ||
117 | + context.canvas.setLineWidth(verticalInside.width); | ||
115 | context.canvas.strokePath(); | 118 | context.canvas.strokePath(); |
119 | + | ||
120 | + BoxBorder.unsetStyle(context, verticalInside.style); | ||
116 | } | 121 | } |
117 | 122 | ||
118 | if (horizontalInside.style != BorderStyle.none) { | 123 | if (horizontalInside.style != BorderStyle.none) { |
124 | + BoxBorder.setStyle(context, verticalInside.style); | ||
119 | var offset = box.top; | 125 | var offset = box.top; |
120 | for (var height in heights!.sublist(0, heights.length - 1)) { | 126 | for (var height in heights!.sublist(0, heights.length - 1)) { |
121 | offset -= height; | 127 | offset -= height; |
122 | context.canvas.moveTo(box.x, offset); | 128 | context.canvas.moveTo(box.x, offset); |
123 | context.canvas.lineTo(box.right, offset); | 129 | context.canvas.lineTo(box.right, offset); |
124 | } | 130 | } |
131 | + context.canvas.setStrokeColor(verticalInside.color); | ||
132 | + context.canvas.setLineWidth(verticalInside.width); | ||
125 | context.canvas.strokePath(); | 133 | context.canvas.strokePath(); |
134 | + BoxBorder.unsetStyle(context, verticalInside.style); | ||
126 | } | 135 | } |
127 | } | 136 | } |
128 | } | 137 | } |
@@ -4,7 +4,7 @@ description: A pdf producer for Dart. It can create pdf files for both web or fl | @@ -4,7 +4,7 @@ description: A pdf producer for Dart. It can create pdf files for both web or fl | ||
4 | homepage: https://github.com/DavBfr/dart_pdf/tree/master/pdf | 4 | homepage: https://github.com/DavBfr/dart_pdf/tree/master/pdf |
5 | repository: https://github.com/DavBfr/dart_pdf | 5 | repository: https://github.com/DavBfr/dart_pdf |
6 | issue_tracker: https://github.com/DavBfr/dart_pdf/issues | 6 | issue_tracker: https://github.com/DavBfr/dart_pdf/issues |
7 | -version: 3.0.0-nullsafety.0 | 7 | +version: 3.0.0-nullsafety.1 |
8 | 8 | ||
9 | environment: | 9 | environment: |
10 | sdk: ">=2.12.0-0 <3.0.0" | 10 | sdk: ">=2.12.0-0 <3.0.0" |
-
Please register or login to post a comment