在SAPUI5中生成具有响应表的实时数据的PDF文件

Generate PDF file with real time data of responsive table in SAPUI5

本文关键字:实时 数据 文件 PDF 响应 SAPUI5      更新时间:2023-09-26

我在javascript中创建了一个包含html标记的字符串类型的变量(假设命名为tableDetail)。

例如

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标记+数据。以下是我在调试模式(检查元素)中将鼠标悬停在变量上时得到的代码

"<table width='100%' border='1' cellspacing='0'><tr><th>CurrencyCode</th></tr><tr><td>EUR</td></tr>………"

因此,通过使用tableDetail变量,我想在javascript中单击按钮创建一个PDF

有可能吗?我该如何做到这一点?

提前感谢您。

最后,在我的代码中进行了一些更改后,我完成了在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"></scri‌​pt>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/2.0.16/jspdf.plugin.‌​autotable.js"></script>

在javascript中不可能做到这一点——如果没有这样的行为,你可以使用一些插件来获取你的html数据并将其转换为pdf。

这是你可以尝试的链接。http://code.google.com/p/dompdf/.

最好将您的内容打印到任意页面必须进行一些处理,如果您使用一些简单的PHP,这可能是最好的-试试这个:HTML到PDF转换器