From 013fd2595d1b69b0035dd26b8d5b8e5b97a63db7 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 30 Nov 2025 03:17:17 +0900 Subject: fix(slides): Fix slide rendering in HiDPI display --- services/nuldoc/static/slides/slide.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/services/nuldoc/static/slides/slide.js b/services/nuldoc/static/slides/slide.js index 75a8d35..f62b511 100644 --- a/services/nuldoc/static/slides/slide.js +++ b/services/nuldoc/static/slides/slide.js @@ -17,13 +17,21 @@ async function init() { const page = await doc.getPage(num); const viewport = page.getViewport({ scale: 1.0 }); - canvas.height = viewport.height; - canvas.width = viewport.width; + const outputScale = globalThis.devicePixelRatio || 1; + canvas.height = Math.floor(viewport.height * outputScale); + canvas.width = Math.floor(viewport.width * outputScale); + canvas.style.width = Math.floor(viewport.width) + "px"; + canvas.style.height = Math.floor(viewport.height) + "px"; + + const transform = outputScale !== 1 + ? [outputScale, 0, 0, outputScale, 0, 0] + : null; // TODO: error handling await page.render({ canvasContext: ctx, - viewport: viewport, + viewport, + transform, }); pageRendering = false; -- cgit v1.2.3-70-g09d2