代码之家  ›  专栏  ›  技术社区  ›  anonymoose

打印fabricjs画布?

  •  1
  • anonymoose  · 技术社区  · 7 年前

    几周来,我一直在努力创建能够打印fabricjs画布的功能。我试过这些方法 mentioned here

    我目前正在使用:

    // Trying to 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 + '">';
        windowContent += '</body>';
        windowContent += '</html>';
        var printWin = window.open('','','width=340,height=260');
        printWin.document.open();
        printWin.document.write(windowContent);
        printWin.document.close();
        printWin.focus();
        printWin.print();
        printWin.close();
    }
    

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

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  4
  •   user700284    7 年前

    加载内容后,需要执行打印操作。以下代码应该可以工作

    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);
    }