Печать на холсте ткани?

1

Я несколько недель боролся с созданием функциональности, позволяющей мне печатать мой холст 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>

Изображение 174551

Теги:
canvas
fabricjs

1 ответ

2
Лучший ответ

Вам нужно выполнить операцию печати после загрузки содержимого. Следующий код должен работать

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);
}
  • 0
    Знаете ли вы, можно ли увеличить размер изображения, которое он захватывает из DataURL? Если хотите, я могу открыть новый вопрос. Спасибо!
  • 0
    Не работает ли множитель в toDataURL ()?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню