13 - Angular Tools and Api
13 - Angular Tools and Api
1 / 15
Plan
1 Génération de PDF
2 / 15
Génération de PDF
Angular
jsPDF
pour convertir le canvas en PDF
https://www.npmjs.com/package/jspdf
3 / 15
Génération de PDF
Angular
html2canvas : installation
npm install --save html2canvas
4 / 15
Génération de PDF
Angular
html2canvas : installation
npm install --save html2canvas
4 / 15
Génération de PDF
Angular
jsPDF : installation
npm install --save html2canvas
5 / 15
Génération de PDF
Angular
jsPDF : installation
npm install --save html2canvas
Vérifier qu’un répertoire jspdf a bien été créé dans node modules
5 / 15
Génération de PDF
Angular
Pour commencer
créer un composant pdf dans le module cours
créer un chemin /pdf permettant d’afficher ce composant
6 / 15
Génération de PDF
Angular
Ajoutons le contenu suivant dans pdf.component.html
<div #pdf>
<table>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Ville</th>
</tr>
<tr>
<td>Wick</td>
<td>John</td>
<td>Lyon</td>
</tr>
<tr>
<td>Mitroglou</td>
<td>Kostas</td>
<td>Marseille</td>
</tr>
<tr>
<td>Hakimi</td>
<td>Achraf</td>
<td>Paris</td>
</tr>
</table>
</div>
<button (click)="downloadPdf()">Télécharger</button>
7 / 15
Génération de PDF
Angular
Dans pdf.component.ts, commençons par importer les deux modules installés
@Component({
selector: 'app-pdf',
templateUrl: './pdf.component.html',
styleUrls: ['./pdf.component.css']
})
export class PdfComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
downloadPdf() {
}
}
8 / 15
Génération de PDF
@Component({
selector: 'app-pdf',
templateUrl: './pdf.component.html',
styleUrls: ['./pdf.component.css']
})
export class PdfComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
downloadPdf() {
}
}
9 / 15
Génération de PDF
Angular
Ensuite, on transforme
1 balise ⇒ canvas
2 canvas ⇒ image
3 image ⇒ pdf
10 / 15
Génération de PDF
Angular
Transformons la balise sélectionnée en canvas
@Component({
selector: 'app-pdf',
templateUrl: './pdf.component.html',
styleUrls: ['./pdf.component.css']
})
export class PdfComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
downloadPdf() {
html2canvas(this.toPdf.nativeElement)
.then(canvas => {
});
}
}
11 / 15
Génération de PDF
Construisons un objet jsPDF en préservant les dimensions du canvas et en choisissant l’orientation selon la largeur et
la hauteur
@Component({
selector: 'app-pdf',
templateUrl: './pdf.component.html',
styleUrls: ['./pdf.component.css']
})
export class PdfComponent implements OnInit {
constructor() { }
ngOnInit(): void { }
downloadPdf() {
html2canvas(this.toPdf.nativeElement)
.then(canvas => {
const pdfWidth = canvas.width;
const pdfHeight = canvas.height;
var pdf;
12 / 15
Génération de PDF
Angular
Convertissons le canvas en image de type png (on peut choisir un autre format)
downloadPdf() {
html2canvas(this.toPdf.nativeElement)
.then(canvas => {
const pdfWidth = canvas.width;
const pdfHeight = canvas.height;
var pdf;
});
}
13 / 15
Génération de PDF
Angular
Ajoutons l’image à notre objet jsPDF
downloadPdf() {
html2canvas(this.toPdf.nativeElement)
.then(canvas => {
const pdfWidth = canvas.width;
const pdfHeight = canvas.height;
var pdf;
14 / 15
Génération de PDF
Angular
Transformons l’image en fichier PDF (file sera le nom du fichier téléchargé)
downloadPdf() {
html2canvas(this.toPdf.nativeElement)
.then(canvas => {
const pdfWidth = canvas.width;
const pdfHeight = canvas.height;
var pdf;
15 / 15