3 回答

TA貢獻1752條經(jīng)驗 獲得超4個贊
好的,我想出來了。1.你需要html2canvas和pdfmake。您不需要在app.js中進行任何注入,只需包含在腳本標記中
在要創(chuàng)建PDF的div上,添加如下ID ID:
<div id="exportthis">
在Angular控制器中,在調(diào)用html2canvas時使用div的id:
使用toDataURL()將畫布更改為圖像
然后在pdfmake的docDefinition中將圖像分配給內(nèi)容。
控制器中完成的代碼如下所示:
html2canvas(document.getElementById('exportthis'), {
onrendered: function (canvas) {
var data = canvas.toDataURL();
var docDefinition = {
content: [{
image: data,
width: 500,
}]
};
pdfMake.createPdf(docDefinition).download("Score_Details.pdf");
}
});
我希望這有助于其他人??鞓返木幋a!

TA貢獻1797條經(jīng)驗 獲得超4個贊
這是它對我有用的我正在使用Angular2應用程序中的html2pdf,所以我在控制器中引用了這個函數(shù)
var html2pdf = (function(html2canvas, jsPDF) {
在html2pdf.js中聲明。
所以我在我的angular-controller聲明中添加了這個聲明:
declare function html2pdf(html2canvas, jsPDF): any;
那么,從我的角度控制器的方法我調(diào)用這個函數(shù):
generate_pdf(){
this.someService.loadContent().subscribe(
pdfContent => {
html2pdf(pdfContent, {
margin: 1,
filename: 'myfile.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { dpi: 192, letterRendering: true },
jsPDF: { unit: 'in', format: 'A4', orientation: 'portrait' }
});
}
);
}
希望能幫助到你
添加回答
舉報