Für ein Projekt, an dem ich gerade arbeite, muss ich in der Lage sein, eine PDF der Seite zu generieren, auf der sich der Benutzer gerade befindet, für die ich jspdf
verwenden werde. Da ich eine HTML
habe ich brauche, um eine PDF mit zu generieren, brauche ich die addHTML()
Funktion. Es gibt eine Menge Thema darüber, sagenAngular2 - PDF aus HTML mit jspdf erstellen
You'll either need to use
html2canvas
orrasterizehtml
.
habe ich gewählt html2canvas
zu verwenden. Dies ist, was mein Code sieht aus wie zur Zeit:
import { Injectable, ElementRef, ViewChild } from '@angular/core';
import * as jsPDF from 'jspdf';
import * as d3 from 'd3';
import * as html2canvas from 'html2canvas';
@Injectable()
export class pdfGeneratorService {
@ViewChild('to-pdf') element: ElementRef;
GeneratePDF() {
html2canvas(this.element.nativeElement, <Html2Canvas.Html2CanvasOptions>{
onrendered: function(canvas: HTMLCanvasElement) {
var pdf = new jsPDF('p','pt','a4');
pdf.addHTML(canvas, function() {
pdf.save('web.pdf');
});
}
});
}
}
Wenn diese Funktion aufgerufen wird, erhalte ich eine Fehlerkonsole:
EXCEPTION: Error in ./AppComponent class AppComponent - inline template:3:4 caused by: You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js
Warum genau ist das? Ich gebe eine canvas
als Parameter und es heißt immer noch, dass ich html2canvas
verwenden muss.
Haben Sie 'import * als html2canvas von 'html2canvas/dist/html2canvas.js';'? –
@SyedAliTaqi Ich habe Ihren Vorschlag versucht, aber es wirft Fehler – Vignesh