我的任务是使用 JavaScript 将数据打印到 pdf 文件中。所以我为我的任务选择了 jsPdf 并且也成功了。我的任务是将该打印任务转换为 TypeScript 。这里面临一个新问题Can't find name jsPdf in TypeScript
,我不知道这里的原因,因为在我的 JavaScript 中成功运行的代码在使用 TypeScript 运行时未能做到这一点。我花了两天时间寻找解决方案,但失败了。参考了很多网站,但没有找到任何解决方案。有人可以帮我解决这个问题。
索引.html ,
<script src="common/jspdf.min.js"></script>
<script src="common/jspdf.plugin.autotable.js"></script>
我的 Js 文件,
this.print=function(){
{
var columns = [" Data","StepData","CateData","CritiData","CheckyData"];
var rows = [];
for (var i = 0 ; i<Data.length; i++)
{
rows.push([
Data[i],
StepData[i],
CateData[i],
CritiData[i],
CheckyData[i]
]);
};
var pdfsize='b2';
var doc = new jsPDF('p', 'pt',pdfsize);
doc.autoTable(columns, rows, {
theme: 'grid', // 'striped', 'grid' or 'plain'
headerStyles: {
fillColor: [12, 234, 227],
textColor: [12, 1, 1]
},
styles: {
overflow: 'linebreak',
columnWidth: 400
},
beforePageContent: function(data) {
doc.text("Process Name :"+mainData.name+" || "+"Description :"+mainData.description, 40, 30);
},
columnStyles: {
1: {columnWidth: 60}
}
});
doc.save(mainData.name+".pdf");
}
};
到目前为止,一切都很好,但是当我将其与类型脚本代码绑定时,问题就出现了,
printData=(): any =>{
{
let rows:any = [];
for (let i:any = 0 ; i<this.Data.length; i++)
{
rows.push([
this.Data[i],
this.StepData[i],
this.CateData[i],
this.CritiData[i],
this.FrequData[i]
]);
};
let pdfsize:any='b2';
let doc :any= new jspdf('p', 'pt',pdfsize); //this line is having that error
doc.autoTable(columns, rows, {
theme: 'grid',
headerStyles: {
fillColor: [12, 234, 227],
textColor: [12, 1, 1]
},
styles: {
overflow: 'linebreak',
columnWidth: 400
},
beforePageContent: function(data) {
doc.text("Process Name :"+procName+" || "+"Description :"+procDescription, 40, 30);
},
columnStyles: {
1: {columnWidth: 60}
}
});
doc.save(this.mainData.name+".pdf");
}
};
new jsPdf() 被 javaScript 接受,但 TypeScript 说Can't find name jsPdf。