Committed by
David PHAM-VAN
Added pdfPreviewPageDecoration, scrollViewDecoration properties to PDFPreview Widget.
Showing
3 changed files
with
41 additions
and
19 deletions
| @@ -26,6 +26,8 @@ class PdfPreview extends StatefulWidget { | @@ -26,6 +26,8 @@ class PdfPreview extends StatefulWidget { | ||
| 26 | this.onError, | 26 | this.onError, |
| 27 | this.onPrinted, | 27 | this.onPrinted, |
| 28 | this.onShared, | 28 | this.onShared, |
| 29 | + this.scrollViewDecoration, | ||
| 30 | + this.pdfPreviewPageDecoration, | ||
| 29 | }) : super(key: key); | 31 | }) : super(key: key); |
| 30 | 32 | ||
| 31 | /// Called when a pdf document is needed | 33 | /// Called when a pdf document is needed |
| @@ -61,6 +63,12 @@ class PdfPreview extends StatefulWidget { | @@ -61,6 +63,12 @@ class PdfPreview extends StatefulWidget { | ||
| 61 | /// Called if the user shares the pdf document | 63 | /// Called if the user shares the pdf document |
| 62 | final void Function(BuildContext context) onShared; | 64 | final void Function(BuildContext context) onShared; |
| 63 | 65 | ||
| 66 | + /// Decoration of scrollView | ||
| 67 | + final Decoration scrollViewDecoration; | ||
| 68 | + | ||
| 69 | + /// Decoration of _PdfPreviewPage | ||
| 70 | + final Decoration pdfPreviewPageDecoration; | ||
| 71 | + | ||
| 64 | @override | 72 | @override |
| 65 | _PdfPreviewState createState() => _PdfPreviewState(); | 73 | _PdfPreviewState createState() => _PdfPreviewState(); |
| 66 | } | 74 | } |
| @@ -110,9 +118,15 @@ class _PdfPreviewState extends State<PdfPreview> { | @@ -110,9 +118,15 @@ class _PdfPreviewState extends State<PdfPreview> { | ||
| 110 | await for (final PdfRaster page in Printing.raster(_doc, dpi: dpi)) { | 118 | await for (final PdfRaster page in Printing.raster(_doc, dpi: dpi)) { |
| 111 | setState(() { | 119 | setState(() { |
| 112 | if (pages.length <= pageNum) { | 120 | if (pages.length <= pageNum) { |
| 113 | - pages.add(_PdfPreviewPage(page: page)); | 121 | + pages.add(_PdfPreviewPage( |
| 122 | + page: page, | ||
| 123 | + pdfPreviewPageDecoration: widget.pdfPreviewPageDecoration, | ||
| 124 | + )); | ||
| 114 | } else { | 125 | } else { |
| 115 | - pages[pageNum] = _PdfPreviewPage(page: page); | 126 | + pages[pageNum] = _PdfPreviewPage( |
| 127 | + page: page, | ||
| 128 | + pdfPreviewPageDecoration: widget.pdfPreviewPageDecoration, | ||
| 129 | + ); | ||
| 116 | } | 130 | } |
| 117 | }); | 131 | }); |
| 118 | 132 | ||
| @@ -220,13 +234,14 @@ class _PdfPreviewState extends State<PdfPreview> { | @@ -220,13 +234,14 @@ class _PdfPreviewState extends State<PdfPreview> { | ||
| 220 | final theme = Theme.of(context); | 234 | final theme = Theme.of(context); |
| 221 | 235 | ||
| 222 | final Widget scrollView = Container( | 236 | final Widget scrollView = Container( |
| 223 | - decoration: BoxDecoration( | ||
| 224 | - gradient: LinearGradient( | ||
| 225 | - colors: <Color>[Colors.grey.shade400, Colors.grey.shade200], | ||
| 226 | - begin: Alignment.topCenter, | ||
| 227 | - end: Alignment.bottomCenter, | ||
| 228 | - ), | ||
| 229 | - ), | 237 | + decoration: widget.scrollViewDecoration ?? |
| 238 | + BoxDecoration( | ||
| 239 | + gradient: LinearGradient( | ||
| 240 | + colors: <Color>[Colors.grey.shade400, Colors.grey.shade200], | ||
| 241 | + begin: Alignment.topCenter, | ||
| 242 | + end: Alignment.bottomCenter, | ||
| 243 | + ), | ||
| 244 | + ), | ||
| 230 | width: double.infinity, | 245 | width: double.infinity, |
| 231 | alignment: Alignment.center, | 246 | alignment: Alignment.center, |
| 232 | child: Container( | 247 | child: Container( |
| @@ -380,9 +395,11 @@ class _PdfPreviewPage extends StatelessWidget { | @@ -380,9 +395,11 @@ class _PdfPreviewPage extends StatelessWidget { | ||
| 380 | const _PdfPreviewPage({ | 395 | const _PdfPreviewPage({ |
| 381 | Key key, | 396 | Key key, |
| 382 | this.page, | 397 | this.page, |
| 398 | + this.pdfPreviewPageDecoration, | ||
| 383 | }) : super(key: key); | 399 | }) : super(key: key); |
| 384 | 400 | ||
| 385 | final PdfRaster page; | 401 | final PdfRaster page; |
| 402 | + final Decoration pdfPreviewPageDecoration; | ||
| 386 | 403 | ||
| 387 | @override | 404 | @override |
| 388 | Widget build(BuildContext context) { | 405 | Widget build(BuildContext context) { |
| @@ -395,16 +412,17 @@ class _PdfPreviewPage extends StatelessWidget { | @@ -395,16 +412,17 @@ class _PdfPreviewPage extends StatelessWidget { | ||
| 395 | right: 8, | 412 | right: 8, |
| 396 | bottom: 12, | 413 | bottom: 12, |
| 397 | ), | 414 | ), |
| 398 | - decoration: const BoxDecoration( | ||
| 399 | - color: Colors.white, | ||
| 400 | - boxShadow: <BoxShadow>[ | ||
| 401 | - BoxShadow( | ||
| 402 | - offset: Offset(0, 3), | ||
| 403 | - blurRadius: 5, | ||
| 404 | - color: Color(0xFF000000), | 415 | + decoration: pdfPreviewPageDecoration ?? |
| 416 | + const BoxDecoration( | ||
| 417 | + color: Colors.white, | ||
| 418 | + boxShadow: <BoxShadow>[ | ||
| 419 | + BoxShadow( | ||
| 420 | + offset: Offset(0, 3), | ||
| 421 | + blurRadius: 5, | ||
| 422 | + color: Color(0xFF000000), | ||
| 423 | + ), | ||
| 424 | + ], | ||
| 405 | ), | 425 | ), |
| 406 | - ], | ||
| 407 | - ), | ||
| 408 | child: AspectRatio( | 426 | child: AspectRatio( |
| 409 | aspectRatio: page.width / page.height, | 427 | aspectRatio: page.width / page.height, |
| 410 | child: Image( | 428 | child: Image( |
| @@ -4,7 +4,7 @@ description: Plugin that allows Flutter apps to generate and print documents to | @@ -4,7 +4,7 @@ description: Plugin that allows Flutter apps to generate and print documents to | ||
| 4 | homepage: https://github.com/DavBfr/dart_pdf/tree/master/printing | 4 | homepage: https://github.com/DavBfr/dart_pdf/tree/master/printing |
| 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.4.0 | 7 | +version: 3.5.0 |
| 8 | 8 | ||
| 9 | environment: | 9 | environment: |
| 10 | sdk: ">=2.3.0 <3.0.0" | 10 | sdk: ">=2.3.0 <3.0.0" |
-
Please register or login to post a comment