कोणीय- jsPDF चेतावनियाँ, बिना पढ़ा हुआ टोकेन और jsPDF.fromHTML कोई फ़ंक्शन नहीं है

Aug 16 2020

मैं Angular में html code white jsPDF प्रिंट करना चाहता हूं, लेकिन मैं नहीं कर सकता। मुझे मदद चाहिए, देखो।

ts.config.app.json

{
  "extends": "./tsconfig.base.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": [],
    "allowSyntheticDefaultImports": true
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.d.ts"
  ]
}

npm jspdf मॉड्यूल

यहाँ छवि विवरण दर्ज करें

angular.json स्क्रिप्ट

 "scripts": [
              "node_modules/jquery/dist/jquery.js",
              "node_modules/popper.js/dist/umd/popper.js",
              "node_modules/bootstrap/dist/js/bootstrap.js",
              "node_modules/jspdf/dist/jspdf.es.min.js"
            ]

अगर कक्षा में मैं इस तरह से आयात करता हूं import jsPDF from 'jspdf';या इस तरह से import { jsPDF } from "jspdf";मुझे यह चेतावनी और यह त्रुटि मिलती है।

चेतावनी:

WARNING in ./node_modules/jspdf/dist/jspdf.umd.min.js 195:141-151
Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/jspdf/dist/jspdf.umd.min.js 195:240-254
Critical dependency: the request of a dependency is an expression

त्रुटि:

scripts.js:18390 Uncaught SyntaxError: Unexpected token 'export'

अगर मैं इस तरह jspdf आयात करता हूं तो मुझे import * as jsPDF from "jspdf";यह त्रुटि मिलती है:

त्रुटि:

Type 'typeof import("jspdf")' has no construct signatures.
    const doc = new jsPDF('p', 'pt', 'letter');

यह मेरी कक्षा है:

//PDF
// import { jsPDF } from "jspdf";
import jsPDF from 'jspdf';
// import * as jsPDF from "jspdf";

@Component({
  selector: 'app-cash-register',
  templateUrl: './cash-register.component.html'
})
export class CashRegisterComponent implements OnInit {

@ViewChild("ticket") ticket: ElementRef;

public printPDF(): void {
    var pdf = this.ticket.nativeElement.innerHTML;
    const doc = new jsPDF('p', 'pt', 'letter');

    const margins = {
      top: 80,
      bottom: 60,
      left: 40,
      width: 522
    };

    doc.html(pdf, {
      callback: function(doc) {
        doc.save("Test1.pdf");
      }
    })

    // or
    
    doc.fromHTML(pdf, margins.left, margins.top, {}, function () {

      doc.save("Test2.pdf");
    }, margins);
  }
}

और अगर मैं angular.json में jspdf आयात नहीं करता हूं तो मुझे यह त्रुटि मिलती है जब मैंने डाउनलोड करने की कोशिश की:

core.js:4197 ERROR TypeError: doc.fromHTML is not a function

जवाब

5 Nakres Aug 18 2020 at 05:16

मेरे पास एक अच्छा समाधान नहीं है लेकिन यह है कि मैंने इसे कैसे काम किया है। ऐसा लगता है कि jspdf 2.0.0 फेंक रहा है "doc.fromHTML एक फ़ंक्शन नहीं है।" कोणीय 10 में (मुझे यकीन नहीं है कि यह पिछले कोणीय संस्करणों में काम करता है।)

मैंने jsdpf 2.0.0 का उपयोग करके हटा दिया

npm uninstall jspdf

फिर मैंने पिछला संस्करण स्थापित किया है जो है:

npm install [email protected]

कार्य करना

import * as jsPDF from 'jspdf';


var doc = new jsPDF('p', 'pt', 'letter');
var imgData =
  'data:image/png;base64,addAnImageData';
var specialElementHandlers = {
  '#idDiv': function (element, renderer) {
    return true;
  }
};
doc.addImage(imgData, 'png', 0, 250, 615, 200);
let source = document.getElementById("idDiv");
doc.fromHTML(source, 0, 0, {
  'elementHandlers': specialElementHandlers
});
doc.save('card.pdf');
hyzhang6639 Aug 23 2020 at 19:54

doc.fromHTML()मुद्दा कोणीय 7.x पर भी हुआ। यदि डाउनग्रेड करने के लिए jsPDF 1.5.3 है, तो यह ठीक से काम कर सकता है।