Showing
45 changed files
with
103 additions
and
102 deletions
1 | # Changelog | 1 | # Changelog |
2 | 2 | ||
3 | -## 1.14.0 | 3 | +## 2.0.0 |
4 | 4 | ||
5 | - A borderRadius can only be given for a uniform Border | 5 | - A borderRadius can only be given for a uniform Border |
6 | - Add LayoutWidgetBuilder | 6 | - Add LayoutWidgetBuilder |
@@ -8,6 +8,8 @@ | @@ -8,6 +8,8 @@ | ||
8 | - Improve internal sructure | 8 | - Improve internal sructure |
9 | - Add some asserts on the TtfParser | 9 | - Add some asserts on the TtfParser |
10 | - Add document loading | 10 | - Add document loading |
11 | +- Remove deprecated methods | ||
12 | +- Document.save() now returns a Future | ||
11 | 13 | ||
12 | ## 1.13.0 | 14 | ## 1.13.0 |
13 | 15 |
@@ -89,7 +89,7 @@ To save the pdf file: | @@ -89,7 +89,7 @@ To save the pdf file: | ||
89 | // final output = await getTemporaryDirectory(); | 89 | // final output = await getTemporaryDirectory(); |
90 | // final file = File("${output.path}/example.pdf"); | 90 | // final file = File("${output.path}/example.pdf"); |
91 | final file = File("example.pdf"); | 91 | final file = File("example.pdf"); |
92 | -await file.writeAsBytes(pdf.save()); | 92 | +await file.writeAsBytes(await pdf.save()); |
93 | ``` | 93 | ``` |
94 | 94 | ||
95 | ## Encryption, Digital Signature, and loading a PDF Document | 95 | ## Encryption, Digital Signature, and loading a PDF Document |
@@ -2,10 +2,10 @@ import 'dart:io'; | @@ -2,10 +2,10 @@ import 'dart:io'; | ||
2 | 2 | ||
3 | import 'package:pdf/widgets.dart' as pw; | 3 | import 'package:pdf/widgets.dart' as pw; |
4 | 4 | ||
5 | -void main() { | ||
6 | - final doc = pw.Document(); | 5 | +Future<void> main() async { |
6 | + final pdf = pw.Document(); | ||
7 | 7 | ||
8 | - doc.addPage( | 8 | + pdf.addPage( |
9 | pw.Page( | 9 | pw.Page( |
10 | build: (pw.Context context) => pw.Center( | 10 | build: (pw.Context context) => pw.Center( |
11 | child: pw.Text('Hello World!'), | 11 | child: pw.Text('Hello World!'), |
@@ -14,5 +14,5 @@ void main() { | @@ -14,5 +14,5 @@ void main() { | ||
14 | ); | 14 | ); |
15 | 15 | ||
16 | final file = File('example.pdf'); | 16 | final file = File('example.pdf'); |
17 | - file.writeAsBytesSync(doc.save()); | 17 | + await file.writeAsBytes(await pdf.save()); |
18 | } | 18 | } |
@@ -191,7 +191,7 @@ class PdfDocument { | @@ -191,7 +191,7 @@ class PdfDocument { | ||
191 | bool get hasGraphicStates => _graphicStates != null; | 191 | bool get hasGraphicStates => _graphicStates != null; |
192 | 192 | ||
193 | /// This writes the document to an OutputStream. | 193 | /// This writes the document to an OutputStream. |
194 | - void _write(PdfStream os) { | 194 | + Future<void> _write(PdfStream os) async { |
195 | final pos = PdfOutput(os); | 195 | final pos = PdfOutput(os); |
196 | 196 | ||
197 | // Write each object to the [PdfStream]. We call via the output | 197 | // Write each object to the [PdfStream]. We call via the output |
@@ -199,16 +199,16 @@ class PdfDocument { | @@ -199,16 +199,16 @@ class PdfDocument { | ||
199 | objects.forEach(pos.write); | 199 | objects.forEach(pos.write); |
200 | 200 | ||
201 | // Finally close the output, which writes the xref table. | 201 | // Finally close the output, which writes the xref table. |
202 | - pos.close(); | 202 | + await pos.close(); |
203 | } | 203 | } |
204 | 204 | ||
205 | /// Generate the PDF document as a memory file | 205 | /// Generate the PDF document as a memory file |
206 | - Uint8List save() { | 206 | + Future<Uint8List> save() async { |
207 | final os = PdfStream(); | 207 | final os = PdfStream(); |
208 | if (prev != null) { | 208 | if (prev != null) { |
209 | os.putBytes(prev.bytes); | 209 | os.putBytes(prev.bytes); |
210 | } | 210 | } |
211 | - _write(os); | 211 | + await _write(os); |
212 | return os.output(); | 212 | return os.output(); |
213 | } | 213 | } |
214 | } | 214 | } |
@@ -68,7 +68,7 @@ class PdfOutput { | @@ -68,7 +68,7 @@ class PdfOutput { | ||
68 | } | 68 | } |
69 | 69 | ||
70 | /// This closes the Stream, writing the xref table | 70 | /// This closes the Stream, writing the xref table |
71 | - void close() { | 71 | + Future<void> close() async { |
72 | final xref = os.offset; | 72 | final xref = os.offset; |
73 | os.putString('xref\n'); | 73 | os.putString('xref\n'); |
74 | 74 | ||
@@ -136,7 +136,7 @@ class PdfOutput { | @@ -136,7 +136,7 @@ class PdfOutput { | ||
136 | os.putString('\nstartxref\n$xref\n%%EOF\n'); | 136 | os.putString('\nstartxref\n$xref\n%%EOF\n'); |
137 | 137 | ||
138 | if (signatureID != null) { | 138 | if (signatureID != null) { |
139 | - signatureID.writeSignature(os); | 139 | + await signatureID.writeSignature(os); |
140 | } | 140 | } |
141 | } | 141 | } |
142 | 142 |
@@ -52,17 +52,17 @@ class PdfSignature extends PdfObject { | @@ -52,17 +52,17 @@ class PdfSignature extends PdfObject { | ||
52 | _offsetEnd = os.offset; | 52 | _offsetEnd = os.offset; |
53 | } | 53 | } |
54 | 54 | ||
55 | - void writeSignature(PdfStream os) { | 55 | + Future<void> writeSignature(PdfStream os) async { |
56 | assert(_offsetStart != null && _offsetEnd != null, | 56 | assert(_offsetStart != null && _offsetEnd != null, |
57 | 'Must reserve the object space before signing the document'); | 57 | 'Must reserve the object space before signing the document'); |
58 | 58 | ||
59 | - crypto.sign(this, os, params, _offsetStart, _offsetEnd); | 59 | + await crypto.sign(this, os, params, _offsetStart, _offsetEnd); |
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | abstract class PdfSignatureBase { | 63 | abstract class PdfSignatureBase { |
64 | void preSign(PdfObject object, PdfDict params); | 64 | void preSign(PdfObject object, PdfDict params); |
65 | 65 | ||
66 | - void sign(PdfObject object, PdfStream os, PdfDict params, int offsetStart, | ||
67 | - int offsetEnd); | 66 | + Future<void> sign(PdfObject object, PdfStream os, PdfDict params, |
67 | + int offsetStart, int offsetEnd); | ||
68 | } | 68 | } |
@@ -112,13 +112,13 @@ class Document { | @@ -112,13 +112,13 @@ class Document { | ||
112 | _pages.add(page); | 112 | _pages.add(page); |
113 | } | 113 | } |
114 | 114 | ||
115 | - Uint8List save() { | 115 | + Future<Uint8List> save() async { |
116 | if (!_paint) { | 116 | if (!_paint) { |
117 | for (var page in _pages) { | 117 | for (var page in _pages) { |
118 | page.postProcess(this); | 118 | page.postProcess(this); |
119 | } | 119 | } |
120 | _paint = true; | 120 | _paint = true; |
121 | } | 121 | } |
122 | - return document.save(); | 122 | + return await document.save(); |
123 | } | 123 | } |
124 | } | 124 | } |
@@ -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: 1.14.0 | 7 | +version: 2.0.0 |
8 | 8 | ||
9 | environment: | 9 | environment: |
10 | sdk: ">=2.3.0 <3.0.0" | 10 | sdk: ">=2.3.0 <3.0.0" |
@@ -20,7 +20,7 @@ import 'package:pdf/pdf.dart'; | @@ -20,7 +20,7 @@ import 'package:pdf/pdf.dart'; | ||
20 | import 'package:test/test.dart'; | 20 | import 'package:test/test.dart'; |
21 | 21 | ||
22 | void main() { | 22 | void main() { |
23 | - test('Pdf Annotations', () { | 23 | + test('Pdf Annotations', () async { |
24 | final pdf = PdfDocument(); | 24 | final pdf = PdfDocument(); |
25 | final page = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 300)); | 25 | final page = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 300)); |
26 | final page1 = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 300)); | 26 | final page1 = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 300)); |
@@ -71,6 +71,6 @@ void main() { | @@ -71,6 +71,6 @@ void main() { | ||
71 | g.strokePath(); | 71 | g.strokePath(); |
72 | 72 | ||
73 | final file = File('annotations.pdf'); | 73 | final file = File('annotations.pdf'); |
74 | - file.writeAsBytesSync(pdf.save()); | 74 | + await file.writeAsBytes(await pdf.save()); |
75 | }); | 75 | }); |
76 | } | 76 | } |
@@ -486,8 +486,8 @@ void main() { | @@ -486,8 +486,8 @@ void main() { | ||
486 | )); | 486 | )); |
487 | }); | 487 | }); |
488 | 488 | ||
489 | - tearDownAll(() { | 489 | + tearDownAll(() async { |
490 | final file = File('arabic.pdf'); | 490 | final file = File('arabic.pdf'); |
491 | - file.writeAsBytesSync(pdf.save()); | 491 | + await file.writeAsBytes(await pdf.save()); |
492 | }); | 492 | }); |
493 | } | 493 | } |
@@ -744,8 +744,8 @@ void main() { | @@ -744,8 +744,8 @@ void main() { | ||
744 | }); | 744 | }); |
745 | }); | 745 | }); |
746 | 746 | ||
747 | - tearDownAll(() { | 747 | + tearDownAll(() async { |
748 | final file = File('colors.pdf'); | 748 | final file = File('colors.pdf'); |
749 | - file.writeAsBytesSync(pdf.save()); | 749 | + await file.writeAsBytes(await pdf.save()); |
750 | }); | 750 | }); |
751 | } | 751 | } |
@@ -23,7 +23,7 @@ import 'package:test/test.dart'; | @@ -23,7 +23,7 @@ import 'package:test/test.dart'; | ||
23 | import 'package:vector_math/vector_math_64.dart'; | 23 | import 'package:vector_math/vector_math_64.dart'; |
24 | 24 | ||
25 | void main() { | 25 | void main() { |
26 | - test('Pdf Complex', () { | 26 | + test('Pdf Complex', () async { |
27 | final img = Uint32List(10 * 10); | 27 | final img = Uint32List(10 * 10); |
28 | img.fillRange(0, img.length - 1, 0x12345678); | 28 | img.fillRange(0, img.length - 1, 0x12345678); |
29 | 29 | ||
@@ -96,6 +96,6 @@ void main() { | @@ -96,6 +96,6 @@ void main() { | ||
96 | } | 96 | } |
97 | 97 | ||
98 | final file = File('complex.pdf'); | 98 | final file = File('complex.pdf'); |
99 | - file.writeAsBytesSync(pdf.save()); | 99 | + await file.writeAsBytes(await pdf.save()); |
100 | }); | 100 | }); |
101 | } | 101 | } |
@@ -106,9 +106,9 @@ void main() { | @@ -106,9 +106,9 @@ void main() { | ||
106 | ); | 106 | ); |
107 | }); | 107 | }); |
108 | 108 | ||
109 | - tearDownAll(() { | 109 | + tearDownAll(() async { |
110 | final file = File('jpeg.pdf'); | 110 | final file = File('jpeg.pdf'); |
111 | - file.writeAsBytesSync(pdf.save()); | 111 | + await file.writeAsBytes(await pdf.save()); |
112 | }); | 112 | }); |
113 | } | 113 | } |
114 | 114 |
@@ -99,7 +99,7 @@ void printMetrics( | @@ -99,7 +99,7 @@ void printMetrics( | ||
99 | } | 99 | } |
100 | 100 | ||
101 | void main() { | 101 | void main() { |
102 | - test('Pdf Font Metrics', () { | 102 | + test('Pdf Font Metrics', () async { |
103 | final pdf = Document(); | 103 | final pdf = Document(); |
104 | 104 | ||
105 | PdfFont.courier(pdf.document); | 105 | PdfFont.courier(pdf.document); |
@@ -126,6 +126,6 @@ void main() { | @@ -126,6 +126,6 @@ void main() { | ||
126 | } | 126 | } |
127 | 127 | ||
128 | final file = File('metrics.pdf'); | 128 | final file = File('metrics.pdf'); |
129 | - file.writeAsBytesSync(pdf.save()); | 129 | + await file.writeAsBytes(await pdf.save()); |
130 | }); | 130 | }); |
131 | } | 131 | } |
@@ -20,7 +20,7 @@ import 'package:pdf/pdf.dart'; | @@ -20,7 +20,7 @@ import 'package:pdf/pdf.dart'; | ||
20 | import 'package:test/test.dart'; | 20 | import 'package:test/test.dart'; |
21 | 21 | ||
22 | void main() { | 22 | void main() { |
23 | - test('Pdf Minimal', () { | 23 | + test('Pdf Minimal', () async { |
24 | final pdf = PdfDocument(compress: false); | 24 | final pdf = PdfDocument(compress: false); |
25 | final page = PdfPage(pdf, pageFormat: PdfPageFormat.a4); | 25 | final page = PdfPage(pdf, pageFormat: PdfPageFormat.a4); |
26 | 26 | ||
@@ -30,6 +30,6 @@ void main() { | @@ -30,6 +30,6 @@ void main() { | ||
30 | g.strokePath(); | 30 | g.strokePath(); |
31 | 31 | ||
32 | final file = File('minimal.pdf'); | 32 | final file = File('minimal.pdf'); |
33 | - file.writeAsBytesSync(pdf.save()); | 33 | + await file.writeAsBytes(await pdf.save()); |
34 | }); | 34 | }); |
35 | } | 35 | } |
@@ -135,8 +135,8 @@ void main() { | @@ -135,8 +135,8 @@ void main() { | ||
135 | )); | 135 | )); |
136 | }); | 136 | }); |
137 | 137 | ||
138 | - tearDownAll(() { | 138 | + tearDownAll(() async { |
139 | final file = File('orientation.pdf'); | 139 | final file = File('orientation.pdf'); |
140 | - file.writeAsBytesSync(pdf.save()); | 140 | + await file.writeAsBytes(await pdf.save()); |
141 | }); | 141 | }); |
142 | } | 142 | } |
@@ -46,8 +46,8 @@ void main() { | @@ -46,8 +46,8 @@ void main() { | ||
46 | build: (Context context) => Text('Hello World!'))); | 46 | build: (Context context) => Text('Hello World!'))); |
47 | }); | 47 | }); |
48 | 48 | ||
49 | - tearDownAll(() { | 49 | + tearDownAll(() async { |
50 | final file = File('roll-paper.pdf'); | 50 | final file = File('roll-paper.pdf'); |
51 | - file.writeAsBytesSync(pdf.save()); | 51 | + await file.writeAsBytes(await pdf.save()); |
52 | }); | 52 | }); |
53 | } | 53 | } |
@@ -59,7 +59,7 @@ void printTextTtf( | @@ -59,7 +59,7 @@ void printTextTtf( | ||
59 | } | 59 | } |
60 | 60 | ||
61 | void main() { | 61 | void main() { |
62 | - test('Pdf TrueType', () { | 62 | + test('Pdf TrueType', () async { |
63 | final pdf = PdfDocument(); | 63 | final pdf = PdfDocument(); |
64 | final page = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 300)); | 64 | final page = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 300)); |
65 | 65 | ||
@@ -75,7 +75,7 @@ void main() { | @@ -75,7 +75,7 @@ void main() { | ||
75 | page, g, '你好 檯號 ', File('genyomintw.ttf'), 30.0 + 30.0 * top++); | 75 | page, g, '你好 檯號 ', File('genyomintw.ttf'), 30.0 + 30.0 * top++); |
76 | 76 | ||
77 | final file = File('ttf.pdf'); | 77 | final file = File('ttf.pdf'); |
78 | - file.writeAsBytesSync(pdf.save()); | 78 | + await file.writeAsBytes(await pdf.save()); |
79 | }); | 79 | }); |
80 | 80 | ||
81 | test('Font SubSetting', () { | 81 | test('Font SubSetting', () { |
@@ -50,7 +50,7 @@ void printText( | @@ -50,7 +50,7 @@ void printText( | ||
50 | } | 50 | } |
51 | 51 | ||
52 | void main() { | 52 | void main() { |
53 | - test('Pdf Type1 Embedded Fonts', () { | 53 | + test('Pdf Type1 Embedded Fonts', () async { |
54 | final pdf = PdfDocument(); | 54 | final pdf = PdfDocument(); |
55 | final page = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 430)); | 55 | final page = PdfPage(pdf, pageFormat: const PdfPageFormat(500, 430)); |
56 | 56 | ||
@@ -78,6 +78,6 @@ void main() { | @@ -78,6 +78,6 @@ void main() { | ||
78 | printText(page, g, s, PdfFont.zapfDingbats(pdf), 20.0 + 30.0 * top++); | 78 | printText(page, g, s, PdfFont.zapfDingbats(pdf), 20.0 + 30.0 * top++); |
79 | 79 | ||
80 | final file = File('type1.pdf'); | 80 | final file = File('type1.pdf'); |
81 | - file.writeAsBytesSync(pdf.save()); | 81 | + await file.writeAsBytes(await pdf.save()); |
82 | }); | 82 | }); |
83 | } | 83 | } |
@@ -84,8 +84,8 @@ void main() { | @@ -84,8 +84,8 @@ void main() { | ||
84 | ); | 84 | ); |
85 | }); | 85 | }); |
86 | 86 | ||
87 | - tearDownAll(() { | 87 | + tearDownAll(() async { |
88 | final file = File('widgets-barcode.pdf'); | 88 | final file = File('widgets-barcode.pdf'); |
89 | - file.writeAsBytesSync(pdf.save()); | 89 | + await file.writeAsBytes(await pdf.save()); |
90 | }); | 90 | }); |
91 | } | 91 | } |
@@ -201,8 +201,8 @@ void main() { | @@ -201,8 +201,8 @@ void main() { | ||
201 | ))); | 201 | ))); |
202 | }); | 202 | }); |
203 | 203 | ||
204 | - tearDownAll(() { | 204 | + tearDownAll(() async { |
205 | final file = File('widgets-basic.pdf'); | 205 | final file = File('widgets-basic.pdf'); |
206 | - file.writeAsBytesSync(pdf.save()); | 206 | + await file.writeAsBytes(await pdf.save()); |
207 | }); | 207 | }); |
208 | } | 208 | } |
@@ -213,8 +213,8 @@ void main() { | @@ -213,8 +213,8 @@ void main() { | ||
213 | }); | 213 | }); |
214 | }); | 214 | }); |
215 | 215 | ||
216 | - tearDownAll(() { | 216 | + tearDownAll(() async { |
217 | final file = File('widgets-chart.pdf'); | 217 | final file = File('widgets-chart.pdf'); |
218 | - file.writeAsBytesSync(pdf.save()); | 218 | + await file.writeAsBytes(await pdf.save()); |
219 | }); | 219 | }); |
220 | } | 220 | } |
@@ -69,8 +69,8 @@ void main() { | @@ -69,8 +69,8 @@ void main() { | ||
69 | )); | 69 | )); |
70 | }); | 70 | }); |
71 | 71 | ||
72 | - tearDownAll(() { | 72 | + tearDownAll(() async { |
73 | final file = File('widgets-clip.pdf'); | 73 | final file = File('widgets-clip.pdf'); |
74 | - file.writeAsBytesSync(pdf.save()); | 74 | + await file.writeAsBytes(await pdf.save()); |
75 | }); | 75 | }); |
76 | } | 76 | } |
@@ -199,8 +199,8 @@ void main() { | @@ -199,8 +199,8 @@ void main() { | ||
199 | )); | 199 | )); |
200 | }); | 200 | }); |
201 | 201 | ||
202 | - tearDownAll(() { | 202 | + tearDownAll(() async { |
203 | final file = File('widgets-container.pdf'); | 203 | final file = File('widgets-container.pdf'); |
204 | - file.writeAsBytesSync(pdf.save()); | 204 | + await file.writeAsBytes(await pdf.save()); |
205 | }); | 205 | }); |
206 | } | 206 | } |
@@ -109,8 +109,8 @@ void main() { | @@ -109,8 +109,8 @@ void main() { | ||
109 | ); | 109 | ); |
110 | }); | 110 | }); |
111 | 111 | ||
112 | - tearDownAll(() { | 112 | + tearDownAll(() async { |
113 | final file = File('widgets-flex.pdf'); | 113 | final file = File('widgets-flex.pdf'); |
114 | - file.writeAsBytesSync(pdf.save()); | 114 | + await file.writeAsBytes(await pdf.save()); |
115 | }); | 115 | }); |
116 | } | 116 | } |
@@ -137,8 +137,8 @@ void main() { | @@ -137,8 +137,8 @@ void main() { | ||
137 | }, | 137 | }, |
138 | ); | 138 | ); |
139 | 139 | ||
140 | - tearDownAll(() { | 140 | + tearDownAll(() async { |
141 | final file = File('widgets-form.pdf'); | 141 | final file = File('widgets-form.pdf'); |
142 | - file.writeAsBytesSync(pdf.save()); | 142 | + await file.writeAsBytes(await pdf.save()); |
143 | }); | 143 | }); |
144 | } | 144 | } |
@@ -60,8 +60,8 @@ void main() { | @@ -60,8 +60,8 @@ void main() { | ||
60 | )); | 60 | )); |
61 | }); | 61 | }); |
62 | 62 | ||
63 | - tearDownAll(() { | 63 | + tearDownAll(() async { |
64 | final file = File('widgets-gridview.pdf'); | 64 | final file = File('widgets-gridview.pdf'); |
65 | - file.writeAsBytesSync(pdf.save()); | 65 | + await file.writeAsBytes(await pdf.save()); |
66 | }); | 66 | }); |
67 | } | 67 | } |
@@ -66,8 +66,8 @@ void main() { | @@ -66,8 +66,8 @@ void main() { | ||
66 | ); | 66 | ); |
67 | }); | 67 | }); |
68 | 68 | ||
69 | - tearDownAll(() { | 69 | + tearDownAll(() async { |
70 | final file = File('widgets-icons.pdf'); | 70 | final file = File('widgets-icons.pdf'); |
71 | - file.writeAsBytesSync(pdf.save()); | 71 | + await file.writeAsBytes(await pdf.save()); |
72 | }); | 72 | }); |
73 | } | 73 | } |
@@ -28,7 +28,7 @@ void main() { | @@ -28,7 +28,7 @@ void main() { | ||
28 | } | 28 | } |
29 | }); | 29 | }); |
30 | 30 | ||
31 | - test('Pdf Widgets MultiPage', () { | 31 | + test('Pdf Widgets MultiPage', () async { |
32 | Document.debug = true; | 32 | Document.debug = true; |
33 | 33 | ||
34 | final pdf = Document(); | 34 | final pdf = Document(); |
@@ -36,13 +36,13 @@ void main() { | @@ -36,13 +36,13 @@ void main() { | ||
36 | pdf.addPage(MultiPage(build: (Context context) => lines)); | 36 | pdf.addPage(MultiPage(build: (Context context) => lines)); |
37 | 37 | ||
38 | final file = File('widgets-multipage.pdf'); | 38 | final file = File('widgets-multipage.pdf'); |
39 | - file.writeAsBytesSync(pdf.save()); | 39 | + await file.writeAsBytes(await pdf.save()); |
40 | 40 | ||
41 | final file1 = File('widgets-multipage-1.pdf'); | 41 | final file1 = File('widgets-multipage-1.pdf'); |
42 | - file1.writeAsBytesSync(pdf.save()); | 42 | + await file1.writeAsBytes(await pdf.save()); |
43 | }); | 43 | }); |
44 | 44 | ||
45 | - test('Pdf Widgets MonoPage', () { | 45 | + test('Pdf Widgets MonoPage', () async { |
46 | Document.debug = true; | 46 | Document.debug = true; |
47 | 47 | ||
48 | final pdf = Document(); | 48 | final pdf = Document(); |
@@ -50,9 +50,9 @@ void main() { | @@ -50,9 +50,9 @@ void main() { | ||
50 | pdf.addPage(Page(build: (Context context) => Column(children: lines))); | 50 | pdf.addPage(Page(build: (Context context) => Column(children: lines))); |
51 | 51 | ||
52 | final file = File('widgets-monopage.pdf'); | 52 | final file = File('widgets-monopage.pdf'); |
53 | - file.writeAsBytesSync(pdf.save()); | 53 | + await file.writeAsBytes(await pdf.save()); |
54 | 54 | ||
55 | final file1 = File('widgets-monopage-1.pdf'); | 55 | final file1 = File('widgets-monopage-1.pdf'); |
56 | - file1.writeAsBytesSync(pdf.save()); | 56 | + await file1.writeAsBytes(await pdf.save()); |
57 | }); | 57 | }); |
58 | } | 58 | } |
@@ -44,8 +44,8 @@ void main() { | @@ -44,8 +44,8 @@ void main() { | ||
44 | ); | 44 | ); |
45 | }); | 45 | }); |
46 | 46 | ||
47 | - tearDownAll(() { | 47 | + tearDownAll(() async { |
48 | final file = File('widgets-opacity.pdf'); | 48 | final file = File('widgets-opacity.pdf'); |
49 | - file.writeAsBytesSync(pdf.save()); | 49 | + await file.writeAsBytes(await pdf.save()); |
50 | }); | 50 | }); |
51 | } | 51 | } |
@@ -83,8 +83,8 @@ void main() { | @@ -83,8 +83,8 @@ void main() { | ||
83 | ); | 83 | ); |
84 | }); | 84 | }); |
85 | 85 | ||
86 | - tearDownAll(() { | 86 | + tearDownAll(() async { |
87 | final file = File('widgets-outline.pdf'); | 87 | final file = File('widgets-outline.pdf'); |
88 | - file.writeAsBytesSync(pdf.save()); | 88 | + await file.writeAsBytes(await pdf.save()); |
89 | }); | 89 | }); |
90 | } | 90 | } |
@@ -54,8 +54,8 @@ void main() { | @@ -54,8 +54,8 @@ void main() { | ||
54 | ); | 54 | ); |
55 | }); | 55 | }); |
56 | 56 | ||
57 | - tearDownAll(() { | 57 | + tearDownAll(() async { |
58 | final file = File('widgets-partitions.pdf'); | 58 | final file = File('widgets-partitions.pdf'); |
59 | - file.writeAsBytesSync(pdf.save()); | 59 | + await file.writeAsBytes(await pdf.save()); |
60 | }); | 60 | }); |
61 | } | 61 | } |
@@ -110,8 +110,8 @@ void main() { | @@ -110,8 +110,8 @@ void main() { | ||
110 | ); | 110 | ); |
111 | }); | 111 | }); |
112 | 112 | ||
113 | - tearDownAll(() { | 113 | + tearDownAll(() async { |
114 | final file = File('widgets-svg.pdf'); | 114 | final file = File('widgets-svg.pdf'); |
115 | - file.writeAsBytesSync(pdf.save()); | 115 | + await file.writeAsBytes(await pdf.save()); |
116 | }); | 116 | }); |
117 | } | 117 | } |
@@ -269,8 +269,8 @@ void main() { | @@ -269,8 +269,8 @@ void main() { | ||
269 | ); | 269 | ); |
270 | }); | 270 | }); |
271 | 271 | ||
272 | - tearDownAll(() { | 272 | + tearDownAll(() async { |
273 | final file = File('widgets-table.pdf'); | 273 | final file = File('widgets-table.pdf'); |
274 | - file.writeAsBytesSync(pdf.save()); | 274 | + await file.writeAsBytes(await pdf.save()); |
275 | }); | 275 | }); |
276 | } | 276 | } |
@@ -279,8 +279,8 @@ void main() { | @@ -279,8 +279,8 @@ void main() { | ||
279 | }, | 279 | }, |
280 | ); | 280 | ); |
281 | 281 | ||
282 | - tearDownAll(() { | 282 | + tearDownAll(() async { |
283 | final file = File('widgets.pdf'); | 283 | final file = File('widgets.pdf'); |
284 | - file.writeAsBytesSync(pdf.save()); | 284 | + await file.writeAsBytes(await pdf.save()); |
285 | }); | 285 | }); |
286 | } | 286 | } |
@@ -290,8 +290,8 @@ void main() { | @@ -290,8 +290,8 @@ void main() { | ||
290 | ); | 290 | ); |
291 | }); | 291 | }); |
292 | 292 | ||
293 | - tearDownAll(() { | 293 | + tearDownAll(() async { |
294 | final file = File('widgets-text.pdf'); | 294 | final file = File('widgets-text.pdf'); |
295 | - file.writeAsBytesSync(pdf.save()); | 295 | + await file.writeAsBytes(await pdf.save()); |
296 | }); | 296 | }); |
297 | } | 297 | } |
@@ -126,8 +126,8 @@ void main() { | @@ -126,8 +126,8 @@ void main() { | ||
126 | })); | 126 | })); |
127 | }); | 127 | }); |
128 | 128 | ||
129 | - tearDownAll(() { | 129 | + tearDownAll(() async { |
130 | final file = File('widgets-theme.pdf'); | 130 | final file = File('widgets-theme.pdf'); |
131 | - file.writeAsBytesSync(pdf.save()); | 131 | + await file.writeAsBytes(await pdf.save()); |
132 | }); | 132 | }); |
133 | } | 133 | } |
@@ -100,8 +100,8 @@ void main() { | @@ -100,8 +100,8 @@ void main() { | ||
100 | ); | 100 | ); |
101 | }); | 101 | }); |
102 | 102 | ||
103 | - tearDownAll(() { | 103 | + tearDownAll(() async { |
104 | final file = File('widgets-watermark.pdf'); | 104 | final file = File('widgets-watermark.pdf'); |
105 | - file.writeAsBytesSync(pdf.save()); | 105 | + await file.writeAsBytes(await pdf.save()); |
106 | }); | 106 | }); |
107 | } | 107 | } |
@@ -315,8 +315,8 @@ void main() { | @@ -315,8 +315,8 @@ void main() { | ||
315 | ); | 315 | ); |
316 | }); | 316 | }); |
317 | 317 | ||
318 | - tearDownAll(() { | 318 | + tearDownAll(() async { |
319 | final file = File('widgets-wrap.pdf'); | 319 | final file = File('widgets-wrap.pdf'); |
320 | - file.writeAsBytesSync(pdf.save()); | 320 | + await file.writeAsBytes(await pdf.save()); |
321 | }); | 321 | }); |
322 | } | 322 | } |
@@ -84,7 +84,7 @@ To save the pdf file using the [path_provider](https://pub.dev/packages/path_pro | @@ -84,7 +84,7 @@ To save the pdf file using the [path_provider](https://pub.dev/packages/path_pro | ||
84 | ```dart | 84 | ```dart |
85 | final output = await getTemporaryDirectory(); | 85 | final output = await getTemporaryDirectory(); |
86 | final file = File("${output.path}/example.pdf"); | 86 | final file = File("${output.path}/example.pdf"); |
87 | -await file.writeAsBytes(doc.save()); | 87 | +await file.writeAsBytes(await doc.save()); |
88 | ``` | 88 | ``` |
89 | 89 | ||
90 | You can also print the document using the iOS or Android print service: | 90 | You can also print the document using the iOS or Android print service: |
@@ -97,7 +97,7 @@ await Printing.layoutPdf( | @@ -97,7 +97,7 @@ await Printing.layoutPdf( | ||
97 | Or share the document to other applications: | 97 | Or share the document to other applications: |
98 | 98 | ||
99 | ```dart | 99 | ```dart |
100 | -await Printing.sharePdf(bytes: doc.save(), filename: 'my-document.pdf'); | 100 | +await Printing.sharePdf(bytes: await doc.save(), filename: 'my-document.pdf'); |
101 | ``` | 101 | ``` |
102 | 102 | ||
103 | To print an HTML document: | 103 | To print an HTML document: |
@@ -113,7 +113,7 @@ await Printing.layoutPdf( | @@ -113,7 +113,7 @@ await Printing.layoutPdf( | ||
113 | Convert a Pdf to images, one image per page, get only pages 1 and 2 at 72 dpi: | 113 | Convert a Pdf to images, one image per page, get only pages 1 and 2 at 72 dpi: |
114 | 114 | ||
115 | ```dart | 115 | ```dart |
116 | -await for (var page in Printing.raster(doc.save(), pages: [0, 1], dpi: 72)) { | 116 | +await for (var page in Printing.raster(await doc.save(), pages: [0, 1], dpi: 72)) { |
117 | final image = page.toImage(); // ...or page.toPng() | 117 | final image = page.toImage(); // ...or page.toPng() |
118 | print(image); | 118 | print(image); |
119 | } | 119 | } |
@@ -126,19 +126,13 @@ mixin Printing { | @@ -126,19 +126,13 @@ mixin Printing { | ||
126 | 126 | ||
127 | /// Displays a platform popup to share the Pdf document to another application | 127 | /// Displays a platform popup to share the Pdf document to another application |
128 | static Future<bool> sharePdf({ | 128 | static Future<bool> sharePdf({ |
129 | - @Deprecated('use bytes with document.save()') PdfDocument document, | ||
130 | - Uint8List bytes, | 129 | + @required Uint8List bytes, |
131 | String filename = 'document.pdf', | 130 | String filename = 'document.pdf', |
132 | Rect bounds, | 131 | Rect bounds, |
133 | }) { | 132 | }) { |
134 | - assert(document != null || bytes != null); | ||
135 | - assert(!(document == null && bytes == null)); | 133 | + assert(bytes != null); |
136 | assert(filename != null); | 134 | assert(filename != null); |
137 | 135 | ||
138 | - if (document != null) { | ||
139 | - bytes = document.save(); | ||
140 | - } | ||
141 | - | ||
142 | bounds ??= Rect.fromCircle(center: Offset.zero, radius: 10); | 136 | bounds ??= Rect.fromCircle(center: Offset.zero, radius: 10); |
143 | 137 | ||
144 | return PrintingPlatform.instance.sharePdf( | 138 | return PrintingPlatform.instance.sharePdf( |
@@ -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.7.2 | 7 | +version: 4.0.0 |
8 | 8 | ||
9 | environment: | 9 | environment: |
10 | sdk: ">=2.3.0 <3.0.0" | 10 | sdk: ">=2.3.0 <3.0.0" |
@@ -18,7 +18,7 @@ dependencies: | @@ -18,7 +18,7 @@ dependencies: | ||
18 | image: ^2.1.4 | 18 | image: ^2.1.4 |
19 | js: ^0.6.1 | 19 | js: ^0.6.1 |
20 | meta: ^1.1.5 | 20 | meta: ^1.1.5 |
21 | - pdf: ^1.13.0 | 21 | + pdf: ^2.0.0 |
22 | plugin_platform_interface: ^1.0.2 | 22 | plugin_platform_interface: ^1.0.2 |
23 | 23 | ||
24 | dev_dependencies: | 24 | dev_dependencies: |
@@ -68,8 +68,8 @@ void main() { | @@ -68,8 +68,8 @@ void main() { | ||
68 | doc = pw.Document(); | 68 | doc = pw.Document(); |
69 | }); | 69 | }); |
70 | 70 | ||
71 | - tearDownAll(() { | 71 | + tearDownAll(() async { |
72 | final file = File('printing.pdf'); | 72 | final file = File('printing.pdf'); |
73 | - file.writeAsBytesSync(doc.save()); | 73 | + await file.writeAsBytes(await doc.save()); |
74 | }); | 74 | }); |
75 | } | 75 | } |
@@ -7,7 +7,7 @@ import 'package:string_scanner/string_scanner.dart'; | @@ -7,7 +7,7 @@ import 'package:string_scanner/string_scanner.dart'; | ||
7 | const dpi = 72.0; | 7 | const dpi = 72.0; |
8 | const px = dpi / PdfPageFormat.inch * PdfPageFormat.point; | 8 | const px = dpi / PdfPageFormat.inch * PdfPageFormat.point; |
9 | 9 | ||
10 | -void main() { | 10 | +Future<void> main() async { |
11 | // Open self | 11 | // Open self |
12 | final source = File('../test/github_social_preview.dart').readAsStringSync(); | 12 | final source = File('../test/github_social_preview.dart').readAsStringSync(); |
13 | final code = DartSyntaxHighlighter( | 13 | final code = DartSyntaxHighlighter( |
@@ -74,7 +74,7 @@ void main() { | @@ -74,7 +74,7 @@ void main() { | ||
74 | // END | 74 | // END |
75 | 75 | ||
76 | // Save the file | 76 | // Save the file |
77 | - File('social_preview.pdf').writeAsBytesSync(pdf.save()); | 77 | + await File('social_preview.pdf').writeAsBytes(await pdf.save()); |
78 | 78 | ||
79 | // Convert to png | 79 | // Convert to png |
80 | Process.runSync('pdftocairo', | 80 | Process.runSync('pdftocairo', |
-
Please register or login to post a comment