canvas2pdf назначить объект холста контексту - PullRequest
0 голосов
/ 17 октября 2018

Мне нужно сделать снимок веб-страницы и сохранить его как изображение / PDF.Я пытаюсь реализовать canvas2pdf canvas2pdf .Я получаю холст в моем JavaScript с помощью html2canvas, а затем я пытаюсь сгенерировать PDF.Кто-нибудь знает, как назначить / добавить холст к контексту в canvas2pdf.Есть ли другая библиотека сценариев, которую я могу использовать (пробовал jsPDF jsPDF , но выдает ошибку - Blob не является конструктором).Мой код выглядит следующим образом:

        html2canvas(document.getElementById(obj), {     
        logging:true,
        proxy:'app/qBlob/proxy.ashx',
        useCORS: true,
        onrendered: function(canvas) {

             var ctx = new canvas2pdf.PDFContext(blobStream());

             //draw your canvas like you would normally
             // how to assign canvas to ctx??

             //convert your PDF to a Blob and save to file
             ctx.stream.on('finish', function () {
             var blob = ctx.stream.toBlob('application/pdf');
                saveAs(blob, 'example.pdf', true);
             });
             ctx.end();

            // jsPDF code
            // var imgData = canvas.toDataURL('image/png');
            // console.log(imgData);
            // var pdf = new jsPDF();
            // var marginLeft=20;
            // var marginRight=20;
            // pdf.addHTML(document.body);
            // pdf.save('example.pdf');
      }
    });

1 Ответ

0 голосов
/ 14 мая 2019

Blob is not a constructor выдается с этой строкой:

var ctx = new canvas2pdf.PDFContext(blobStream());

Измените это, чтобы избежать ошибки:

var stream = blobStream();
var ctx = new canvas2pdf.PdfContext(stream);

Код является выдержкой из источника демонстрационной страницы canvas2pdf здесь:

view-source: https://joshua -gould.github.io / canvas2pdf / demo.html

...