Committed by
David PHAM-VAN
Wrapped cleanup of page and destory of document in try/finally blocks
Showing
1 changed file
with
8 additions
and
2 deletions
| @@ -290,7 +290,7 @@ class PrintingPlugin extends PrintingPlatform { | @@ -290,7 +290,7 @@ class PrintingPlugin extends PrintingPlatform { | ||
| 290 | await _initPlugin(); | 290 | await _initPlugin(); |
| 291 | 291 | ||
| 292 | final t = PdfJs.getDocument(Settings()..data = document); | 292 | final t = PdfJs.getDocument(Settings()..data = document); |
| 293 | - | 293 | + try { |
| 294 | final d = await promiseToFuture<PdfJsDoc>(t.promise); | 294 | final d = await promiseToFuture<PdfJsDoc>(t.promise); |
| 295 | final numPages = d.numPages; | 295 | final numPages = d.numPages; |
| 296 | 296 | ||
| @@ -298,10 +298,12 @@ class PrintingPlugin extends PrintingPlatform { | @@ -298,10 +298,12 @@ class PrintingPlugin extends PrintingPlatform { | ||
| 298 | js.context['document'].createElement('canvas'); | 298 | js.context['document'].createElement('canvas'); |
| 299 | 299 | ||
| 300 | final context = canvas.getContext('2d') as html.CanvasRenderingContext2D?; | 300 | final context = canvas.getContext('2d') as html.CanvasRenderingContext2D?; |
| 301 | - final _pages = pages ?? Iterable<int>.generate(numPages, (index) => index); | 301 | + final _pages = |
| 302 | + pages ?? Iterable<int>.generate(numPages, (index) => index); | ||
| 302 | 303 | ||
| 303 | for (final i in _pages) { | 304 | for (final i in _pages) { |
| 304 | final page = await promiseToFuture<PdfJsPage>(d.getPage(i + 1)); | 305 | final page = await promiseToFuture<PdfJsPage>(d.getPage(i + 1)); |
| 306 | + try { | ||
| 305 | final viewport = | 307 | final viewport = |
| 306 | page.getViewport(Settings()..scale = dpi / PdfPageFormat.inch); | 308 | page.getViewport(Settings()..scale = dpi / PdfPageFormat.inch); |
| 307 | 309 | ||
| @@ -333,10 +335,14 @@ class PrintingPlugin extends PrintingPlatform { | @@ -333,10 +335,14 @@ class PrintingPlugin extends PrintingPlatform { | ||
| 333 | canvas.height!, | 335 | canvas.height!, |
| 334 | data.toBytes(), | 336 | data.toBytes(), |
| 335 | ); | 337 | ); |
| 338 | + } finally { | ||
| 336 | page.cleanup(); | 339 | page.cleanup(); |
| 337 | } | 340 | } |
| 341 | + } | ||
| 342 | + } finally { | ||
| 338 | t.destroy(); | 343 | t.destroy(); |
| 339 | } | 344 | } |
| 345 | + } | ||
| 340 | } | 346 | } |
| 341 | 347 | ||
| 342 | class _WebPdfRaster extends PdfRaster { | 348 | class _WebPdfRaster extends PdfRaster { |
-
Please register or login to post a comment