我在javascript(假设命名为tableDetail)中创建了一个包含html标签的字符串类型的变量。
例如
var tableDetail = “<table>”;
…some code
tableDetail += “<tr>”
For loop{
// logic to create dynamic tables column
tableDetail += “<th>column_data</th>”
}
tableDetail += “<tr>”
some more loops {
// for each rows - data creation
tableDetail += “<td>row_data</td>”
}
tableDetail += “</tr></table>”
并且在所有循环结束时,我在tableDetail变量中获取整个字符串,其中包含表标记+数据。下面是我在调试模式下将变量悬停在变量上时得到的代码(检查元素)
"<table width='100%' border='1' cellspacing='0'><tr><th>CurrencyCode</th></tr><tr><td>EUR</td></tr>………"
因此,通过使用tableDetail变量,我想在javascript按钮上创建PDF。
有可能吗?我怎样才能做到这一点?
提前感谢你。
答案 0 :(得分:1)
最后,在我的代码中稍有变化后,我完成了在SAPUI5中将sap.m.table数据创建为PDF的目标
在控制器中
handlePdf : function(){
var tabledata = oTable.getModel().getData();
this.JSONToPDFConvertor(tabledata);
},
JSONToPDFConvertor: function(JSONData){
var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
var columns = new Array;
for (var index in arrData[0]) {
//Now convert each value to string and comma-seprated
columns.push(index);
}
var rows = new Array;
console.log(arrData);
for(var i=0;i<arrData.length;i++){
rows[i]=new Array;
for(var j=0;j<arrData.length;){
for (var index in arrData[0]){
rows[i][j]=arrData[i][index];
j++;
}
}
}
if(columns.length<4){
var doc = new jsPDF('p', 'pt');
}else{
var doc = new jsPDF('l','pt');
}
doc.autoTable(columns, rows);
doc.save('table.pdf');
},
请在index.html中包含以下脚本 -
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/2.0.16/jspdf.plugin.autotable.js"></script>
答案 1 :(得分:0)
不可能在javascript中执行这样的行为,你可以使用一些插件来获取你的html数据并将其转换为pdf。
这是您可以尝试此操作的链接。 http://code.google.com/p/dompdf/
答案 2 :(得分:0)
最好将您的内容打印到任意页面必须进行一些处理,如果您查看一些简单的PHP,这可能是最好的 - 试试这个:HTML to PDF Converter