Garrett
Committed by David PHAM-VAN

Wrapped cleanup of page and destory of document in try/finally blocks

... ... @@ -290,7 +290,7 @@ class PrintingPlugin extends PrintingPlatform {
await _initPlugin();
final t = PdfJs.getDocument(Settings()..data = document);
try {
final d = await promiseToFuture<PdfJsDoc>(t.promise);
final numPages = d.numPages;
... ... @@ -298,10 +298,12 @@ class PrintingPlugin extends PrintingPlatform {
js.context['document'].createElement('canvas');
final context = canvas.getContext('2d') as html.CanvasRenderingContext2D?;
final _pages = pages ?? Iterable<int>.generate(numPages, (index) => index);
final _pages =
pages ?? Iterable<int>.generate(numPages, (index) => index);
for (final i in _pages) {
final page = await promiseToFuture<PdfJsPage>(d.getPage(i + 1));
try {
final viewport =
page.getViewport(Settings()..scale = dpi / PdfPageFormat.inch);
... ... @@ -333,10 +335,14 @@ class PrintingPlugin extends PrintingPlatform {
canvas.height!,
data.toBytes(),
);
} finally {
page.cleanup();
}
}
} finally {
t.destroy();
}
}
}
class _WebPdfRaster extends PdfRaster {
... ...