From ec11a59db1315b06de6067a8fdda01837a0eb47e Mon Sep 17 00:00:00 2001 From: Vincent LAURENT Date: Tue, 21 Sep 2021 00:49:15 +0200 Subject: [PATCH] =?UTF-8?q?Copi=C3=A9=20coll=C3=A9=20d'un=20objet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/app.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/js/app.js b/js/app.js index bdcf420..fdc3bc1 100644 --- a/js/app.js +++ b/js/app.js @@ -11,6 +11,9 @@ var loadingTask = pdfjsLib.getDocument(url); loadingTask.promise.then(function(pdf) { var fontCaveat = null; + var copiedObject = null; + var activeCanvas = null; + var activeCanvasPointer = null; opentype.load('font/Caveat-Regular.ttf', function(err, font) { fontCaveat = font; @@ -74,6 +77,24 @@ loadingTask.promise.then(function(pdf) { }) return; } + + if(event.ctrlKey && event.key == 'c') { + canvasEditions.forEach(function(canvasEdition, index) { + if(!canvasEdition.getActiveObject()) { + return; + } + copiedObject = fabric.util.object.clone(canvasEdition.getActiveObject()); + }); + return; + } + + if(event.ctrlKey && event.key == 'v') { + copiedObject = fabric.util.object.clone(copiedObject); + copiedObject.left = activeCanvasPointer.x; + copiedObject.top = activeCanvasPointer.y; + activeCanvas.add(copiedObject).renderAll(); + return; + } }); for(var pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++ ) { @@ -96,6 +117,11 @@ loadingTask.promise.then(function(pdf) { canvasEditionHTML.width = viewport.width; var canvasEdition = new fabric.Canvas('canvas-edition-' + pageIndex); + + canvasEdition.on('mouse:move', function(event) { + activeCanvas = this; + activeCanvasPointer = event.pointer; + }); canvasEdition.on('mouse:dblclick', function(event) { x = event.pointer.x