From 9bdd28c7dfb9d54c08c71e6bced5d8c08457a1f2 Mon Sep 17 00:00:00 2001 From: Vincent LAURENT Date: Wed, 19 Apr 2023 17:26:55 +0200 Subject: [PATCH] metadata: render pdf in right column --- public/js/metadata.js | 35 +++++++++++++++++++++++++++++++++++ templates/metadata.html.php | 34 ++++++++++++++++++---------------- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/public/js/metadata.js b/public/js/metadata.js index 3511845..bec45c6 100644 --- a/public/js/metadata.js +++ b/public/js/metadata.js @@ -42,6 +42,14 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) { addMetadata(metaKey, metadata.info.Custom[metaKey]); } + + for(let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++ ) { + pdf.getPage(pageNumber).then(function(page) { + let pageIndex = (page.pageNumber - 1); + pages[pageIndex] = page; + pageRender(pageIndex); + }); + } }); }, function (reason) { console.error(reason); @@ -50,6 +58,33 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) { return loadingTask; } +var pageRender = async function(pageIndex) { + + let page = pages[pageIndex]; + + let viewport = page.getViewport({scale: 1}); + let sizeWidth = document.getElementById('container-pages').offsetWidth; + let scaleWidth = sizeWidth / viewport.width; + let viewportWidth = page.getViewport({scale: scaleWidth }); + + viewport = viewportWidth; + + let canvasPDF = document.createElement('canvas'); + canvasPDF.classList.add('shadow-sm'); + document.getElementById('container-pages').appendChild(canvasPDF); + let context = canvasPDF.getContext('2d'); + canvasPDF.height = viewport.height; + canvasPDF.width = viewport.width; + + if(pdfRenderTasks[pageIndex]) { + pdfRenderTasks[pageIndex].cancel(); + } + pdfRenderTasks[pageIndex] = await page.render({ + canvasContext: context, + viewport: viewport, + }); +} + var addMetadata = function(key, value) { let div = document.createElement('div'); div.classList.add('form-floating'); diff --git a/templates/metadata.html.php b/templates/metadata.html.php index 19254a1..e91e2e0 100644 --- a/templates/metadata.html.php +++ b/templates/metadata.html.php @@ -48,11 +48,11 @@ Logiciel libre sous license AGPL-3.0 : voir le code source -
+
-
-
-

Métadonnées

+
+
+

Liste des métadonnées du PDF

@@ -64,24 +64,26 @@
-
+
-
+
Édition de métadonnées
+

-
-

-
- - - -
- -
- +
+
+
+
+ + +
+ +
+
+