Я несколько недель боролся с созданием функциональности, позволяющей мне печатать мой холст fabricjs. Я пробовал методы, упомянутые здесь, без везения. Я могу перейти к диалоговому окну печати, тем не менее, он остался без информации о названии и странице. Может кто-то указать мне верное направление?
В настоящее время я использую:
// 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>
Вам нужно выполнить операцию печати после загрузки содержимого. Следующий код должен работать
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);
}