Ошибка при преобразовании HTML в pdf с помощью jspdf

#javascript #angular #jspdf

#javascript #angular #jspdf

Вопрос:

Для проекта Angular я пытаюсь преобразовать строковую переменную, содержащую HTML-код, в PDF-файл. Я установил все зависимые компоненты, такие как:

  • jspdf
  • html2canvas
  • rasterizehtml

Мой код выглядит следующим образом:

   b64DecodeUnicode(str) {
    return decodeURIComponent(atob(str).split('').map(function(c) {
      return '%'   ('00'   c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));
  }


  getBill() {
   //var blob = new Blob([this.b64DecodeUnicode(this.invoicePDF)], {type: "text/html;charset=utf-8"});

    var doc = new jsPDF('p','pt','a4');
   /* doc.text(20, 20, 'Hello world!');
    doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
    doc.addPage('a6','l');
    doc.text(20, 20, 'Do you like that?');
   doc.save('Demo.pdf');*/
    var  htmlData =  String(this.b64DecodeUnicode(this.invoicePDF));
    doc.addHTML(htmlData, function () {
      doc.save('myfilename'   '.pdf');
    });
    //FileSaver.saveAs(doc, "facture_" this.order.reference ".html");
  }
  

Для этого я использую jspdf, но я получаю эту ошибку:

core.js: ОШИБКА 1673 Ошибка: Не перехвачено (в обещании): Ошибка: Предоставленные данные не являются допустимой базовой 64-строкой jsPDF.convertStringToImageData Ошибка: Предоставленные данные не являются допустимой базовой 64-строкой jsPDF.convertStringToImageData в Object.x.convertStringToImageData (jspdf.min.js:50) в Object.x.addImage (jspdf.min.js:50) в Object.x.addImage (jspdf.min.js: 50) в Object. (jspdf.min.js: 188) при jspdf.min.js:188 при ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) при Object.onInvoke (core.js:3820) при ZoneDelegate.push../node_modules/zone.js/dist/zone. js.ZoneDelegate.invoke (zone.js:387) в Zone.push ../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) в zone.js:872 в ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) в resolvePromise (zone.js: 814) в zone .js:877 в ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) в Object.onInvokeTask (core.js:3811) в ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) в Zone.нажимайте ../node_modules/zone.js/dist/zone.js.Zone.RunTask (zone.js:188) на drainMicroTaskQueue (zone.js:595) на ZoneTask.нажимайте ../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [как вызываемый] (zone.js: 500) на invokeTask (zone.js :1540) в Image.globalZoneAwareCallback (zone.js:1566)

Как я могу это исправить? Заранее благодарю вас.