Showing
4 changed files
with
11 additions
and
6 deletions
@@ -248,7 +248,8 @@ class PrintingPlugin extends PrintingPlatform { | @@ -248,7 +248,8 @@ class PrintingPlugin extends PrintingPlatform { | ||
248 | 248 | ||
249 | for (final i in _pages) { | 249 | for (final i in _pages) { |
250 | final page = await promiseToFuture<PdfJsPage>(d.getPage(i + 1)); | 250 | final page = await promiseToFuture<PdfJsPage>(d.getPage(i + 1)); |
251 | - final viewport = page.getViewport(Settings()..scale = 1.5); | 251 | + final viewport = |
252 | + page.getViewport(Settings()..scale = dpi / PdfPageFormat.inch); | ||
252 | 253 | ||
253 | canvas.height = viewport.height.toInt(); | 254 | canvas.height = viewport.height.toInt(); |
254 | canvas.width = viewport.width.toInt(); | 255 | canvas.width = viewport.width.toInt(); |
@@ -174,12 +174,12 @@ class _PdfPreviewState extends State<PdfPreview> { | @@ -174,12 +174,12 @@ class _PdfPreviewState extends State<PdfPreview> { | ||
174 | PdfPageFormat computeActualPageFormat() { | 174 | PdfPageFormat computeActualPageFormat() { |
175 | var format = previewData.pageFormat; | 175 | var format = previewData.pageFormat; |
176 | final pages = previewWidget.currentState?.pages ?? const []; | 176 | final pages = previewWidget.currentState?.pages ?? const []; |
177 | - final dpi = previewWidget.currentState?.dpi ?? 72; | 177 | + final dpi = previewWidget.currentState?.dpi ?? PdfPageFormat.inch; |
178 | 178 | ||
179 | if (!widget.canChangePageFormat && pages.isNotEmpty) { | 179 | if (!widget.canChangePageFormat && pages.isNotEmpty) { |
180 | format = PdfPageFormat( | 180 | format = PdfPageFormat( |
181 | - pages.first.page!.width * 72 / dpi, | ||
182 | - pages.first.page!.height * 72 / dpi, | 181 | + pages.first.page!.width * PdfPageFormat.inch / dpi, |
182 | + pages.first.page!.height * PdfPageFormat.inch / dpi, | ||
183 | marginAll: 5 * PdfPageFormat.mm, | 183 | marginAll: 5 * PdfPageFormat.mm, |
184 | ); | 184 | ); |
185 | } | 185 | } |
@@ -15,6 +15,7 @@ | @@ -15,6 +15,7 @@ | ||
15 | */ | 15 | */ |
16 | 16 | ||
17 | import 'dart:async'; | 17 | import 'dart:async'; |
18 | +import 'dart:io'; | ||
18 | import 'dart:math'; | 19 | import 'dart:math'; |
19 | import 'dart:typed_data'; | 20 | import 'dart:typed_data'; |
20 | 21 | ||
@@ -62,10 +63,12 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | @@ -62,10 +63,12 @@ mixin PdfPreviewRaster on State<PdfPreviewCustom> { | ||
62 | _previewUpdate?.cancel(); | 63 | _previewUpdate?.cancel(); |
63 | _previewUpdate = Timer(_updateTime, () { | 64 | _previewUpdate = Timer(_updateTime, () { |
64 | final mq = MediaQuery.of(context); | 65 | final mq = MediaQuery.of(context); |
66 | + final maxDPR = !kIsWeb && Platform.isAndroid ? 2.0 : 1.0; | ||
67 | + final dpr = max(maxDPR, mq.devicePixelRatio); | ||
65 | dpi = (min(mq.size.width - 16, widget.maxPageWidth ?? double.infinity)) * | 68 | dpi = (min(mq.size.width - 16, widget.maxPageWidth ?? double.infinity)) * |
66 | - mq.devicePixelRatio / | 69 | + dpr / |
67 | pageFormat.width * | 70 | pageFormat.width * |
68 | - 72; | 71 | + PdfPageFormat.inch; |
69 | 72 | ||
70 | _raster(); | 73 | _raster(); |
71 | }); | 74 | }); |
-
Please register or login to post a comment