2017-11-15 7 views
0

私の問題は、fabricjsキャンバスを印刷するときにオブジェクトを選択解除することを忘れてしまい、印刷ダイアログに行くときにコントロールを残してしまうことです。選択したオブジェクトをクリックしてクリアする方法はありますか?すべてのオブジェクトonclickの選択を強制的に解除することはできますか?

現在、私は次のように使用している印刷する:

// Print 
function printCanvas() { 
var dataUrl = document.getElementById('c').toDataURL(); //attempt to save base64 string to server using this var 
    var windowContent = '<!DOCTYPE html>'; 
    windowContent += '<html>' 
    windowContent += '<head><title>Print canvas</title></head>'; 
    windowContent += '<body>' 
    windowContent += '<img src="' + dataUrl + '" onload=window.print();window.close();>'; 
    windowContent += '</body>'; 
    windowContent += '</html>'; 
    var printWin = window.open('', '', 'width=340,height=260'); 
    printWin.document.open(); 
    printWin.document.write(windowContent); 
} 

<button onclick="printCanvas()">Print</button> 

印刷ダイアログから:

enter image description here

事前に任意の助けをありがとう!

答えて

3

あなたは私はあなたが私のクリックボタンを提供してきました何を使用する可能性がありますどのように

canvas.discardActiveObject(); 
canvas.renderAll(); 

(function() { 
 
    var canvas = this.__canvas = new fabric.Canvas('canvas'); 
 
    
 
    // create a rectangle with a fill and a different color stroke 
 
    var rect = new fabric.Rect({ 
 
     left: 50, 
 
     top: 50, 
 
     width: 50, 
 
     height: 50, 
 
     fill: 'rgba(255,127,39,1)', 
 
     stroke: 'rgba(34,177,76,1)', 
 
     strokeWidth: 5 
 
    }); 
 
    canvas.add(rect); 
 
    canvas.renderAll();  
 
    $('#deselect').click(function(){ 
 
     canvas.discardActiveObject(); 
 
     canvas.renderAll(); 
 
    }); 
 
})();
<canvas id="canvas" width="150" height="150"></canvas> 
 
<button id="deselect">deselect</button> 
 
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.4.0/fabric.min.js"></script>

+0

を使用することができますか?私は運がなければ持っているものに機能を追加しようとしました –

関連する問題