कोणीय- jsPDF चेतावनियाँ, बिना पढ़ा हुआ टोकेन और jsPDF.fromHTML कोई फ़ंक्शन नहीं है
मैं 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
जवाब
मेरे पास एक अच्छा समाधान नहीं है लेकिन यह है कि मैंने इसे कैसे काम किया है। ऐसा लगता है कि 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');
doc.fromHTML()
मुद्दा कोणीय 7.x पर भी हुआ। यदि डाउनग्रेड करने के लिए jsPDF 1.5.3 है, तो यह ठीक से काम कर सकता है।