迭代逻辑以显示在网页上

时间:2017-10-27 04:22:24

标签: javascript html

我有一个对象列表,在获取对象的每个元素时,我想将每个元素导出到PDF中的各个页面。

我通过迭代列表对象来获取数据(例如$scope.employees)。目前,当用户单击导出按钮时,数据将导出到PDF。我的要求是每个对象,而迭代应该存储在PDF的各个页面中。例如,带有pageHeader的对象“这在第1页中显示”应该在第1页中显示,“这在第2页中显示”应该在PDF的第2页显示时打开等... 对此有任何建议将不胜感激。

请在此处找到一个plunker演示:https://plnkr.co/edit/HvKipjWCYsgujJOv6You?p=preview

在迭代pageSplit:true,任何输入时,是否需要使用$scope.employees选项?

js code:

$scope.export = function(){
alert("in pdf export");
var pdf = new jsPDF('landscape');
var width1 = pdf.internal.pageSize.width;
var height = pdf.internal.pageSize.height;

var source = "";
$scope.employees.forEach(function(value){
    source+= value.pageHeader + "\n" +"\n";
})
specialElementHandlers = {
    // element with id of "bypass" - jQuery style selector
    '#bypassme': function (element, renderer) {
        // true = "handled elsewhere, bypass text extraction"
        return true
    }
};
margins = {
    top: 80,
    bottom: 60,
    left: 10,
    width: '100%'
};
// all coords and widths are in jsPDF instance's declared units
// 'inches' in this case
pdf.fromHTML(
    source, // HTML string or DOM elem ref.
    margins.left, // x coord
    margins.top, { // y coord
        'width': width1, // max width of content on PDF
        'elementHandlers': specialElementHandlers
    },
    function (dispose) {
        // dispose: object with X, Y of the last line add to the PDF
        //          this allow the insertion of new lines after html
        pdf.save('test.pdf');
    },
    margins
);

1 个答案:

答案 0 :(得分:0)

只需使用<!--ADD_PAGE-->(ADD_PAGE与注释的角度&lt;&gt;大括号),您希望新页面的位置如下

source+= "<div>"+value.pageHeader + "</div><!--ADD_PAGE-->";

Working fiddle