Comment créer un bouton de téléchargement pour enregistrer le contenu HTML div en tant que fichier PDF dans mon projet angular2?
Ceci est le contenu HTML
<div id="obrz">
<br><br>
<p class="float-right font-weight-bold">Образац ЗПО</p>
<br>
<p class="float-left font-weight-bold">Подаци о обвезнику:</p>
<br>
<div class="row" style="width:100%">
<div class="col-md-2"><p>Порески обвезник:</p></div>
<div class="col-md-10"><input value="{{userModel.imeIprezime}}" type="text" class="form-control form-control-sm border-1 border-top-0 border-right-0 border-left-0" style="border-bottom: 1px solid black"></div>
<div class="col-md-2"><p>ПИБ:</p></div>
<div class="col-md-10"><input value="{{userModel.PIB}}" type="text" class="form-control form-control-sm border-1 border-top-0 border-right-0 border-left-0" style="border-bottom: 1px solid black"></div>
<div class="col-md-2"><p>Адреса:</p></div>
<div class="col-md-10"><input value="{{userModel.ulica + ' ' + userModel.broj + ' ' + userModel.grad}}" type="text" class="form-control form-control-sm border-1 border-top-0 border-right-0 border-left-0" style="border-bottom: 1px solid black"></div>
<div class="col-md-2"><p>Општина:</p></div>
<div class="col-md-10"><input value="{{userModel.opstina}}" type="text" class="form-control form-control-sm border-1 border-top-0 border-right-0 border-left-0" style="border-bottom: 1px solid black"></div>
</div>
<br>
</div>
</code>
P.S. J'ai essayé this exemple jsPDF, mais cela ne fonctionne tout simplement pas pour moi
Merci d'avance
Essayez quelque chose comme ceci:
Créez un bouton en dehors de votre div
<button (click)="downloadPdf()">Download PDF</button>
Lorsque vous cliquez dessus, il appellera cette fonction dans votre composant:
downloadPdf() {
let doc = new jsPDF();
doc.addHTML(document.getElementById("obrz"), function() {
doc.save("obrz.pdf");
});
}
JSPDF fonctionne pour angular 2. Vous devez télécharger les définitions depuis dt ~. Importez la bibliothèque en tant que:
import * as jsPDF from "jspdf";
let doc = new jsPDF();
// Add a title to your PDF
doc.setFontSize(30);
doc.text(12, 10, "Your Title");
// Create your table here (The dynamic table needs to be converted to canvas).
let element = <HTMLScriptElement>document.getElementsByClassName("pvtTable")
[0];
html2canvas(element)
.then((canvas: any) => {
doc.addImage(canvas.toDataURL("image/jpeg"), "JPEG", 0, 50,
doc.internal.pageSize.width, element.offsetHeight / 5 );
doc.save(`Report-${Date.now()}.pdf`);
})
Dans votre system.js, dans la section map, ajoutez cette ligne:
"jspdf": "<myLibs>/jspdf.js",
Hear est la démo de travail pour angular 8
Angular 8 Html To Pdf Demo code
Pour Angular 2 vous devez changer le segment de code component.ts ViewChild
@ViewChild('pdfTable', {static: false}) pdfTable: ElementRef;
pour ça
@ViewChild('pdfTable') pdfTable: ElementRef;
J'espère que cela vous aidera ...!