#javascript #jquery #pdf #jspdf #html2canvas
#javascript #jquery #PDF #jspdf #html2canvas
Вопрос:
Я пытаюсь показать pdf-файл со всеми строками, которые отмечены флажком. Когда я читаю, библиотеки html2canvas работают асинхронно, и я получаю пустой PDF-файл, потому что я печатаю до создания.
Я пытаюсь использовать метод отложенного jquery, но не могу получить результат.
Мой сценарий:
var titulo;
var pdf = new jsPDF('P','mm','a4');
function printSelector(tabla){
var posicionY = 50;
var conteo = 0;
pdf.setLineWidth(0.5);
pdf.line(45, 33, 160, 33);
pdf.setFontSize(11);
debugger;
var deferreds = $("input:checkbox:checked").map(function(){
var deferred = $.Deferred();
var row = this.parentNode.parentNode.parentNode;
conteo = conteo 1;
//print(row ,posicionY);
// GET VARS FROM ROW
$("#canvas").JsBarcode(texto, {
fontSize:10,
width:1
});
html2canvas($("#canvas"), {
onrenderer: function(canvas) {
//PDF BUILD WITH jsPDF
posicionY = posicionY 20;
if (posicionY>=3490){
pdf.addPage();
posicionY = 50;
}
deferred.resolve();
}
});
if(tabla.id=='tablaCreacion'){
location.href='/print/' rack.cells[6].innerText;
}
return deferred.promise();
});
$.when.apply($, deferreds.get()).then(function() {
pdf.autoPrint();
if (!window.focus) return true;
window.open( pdf.output('bloburi'), null, 'width=800,height=600,scrollbars=yes');
return false;
});
};
Комментарии:
1. Может быть, ваша проблема в опечатке
onrenderer
вместоonrendered
?2. @maximkou Я потерял много времени на поиск ошибки в другом месте вместо того, чтобы смотреть основы: P Спасибо, maximkou, ваши ответы решают мою проблему.