2015-10-08 2 views
1

У меня есть две таблицы на странице, которые я хочу экспортировать в PDF, мне удалось получить первую таблицу для экспорта в pdf, просто отлично, однако я не могу получить вторую таблицу для экспорта на ту же страницу.Экспортировать несколько таблиц в PDF с помощью jspdf

Это код, который я в настоящее время:

var columns = []; 
var rows = []; 
var columns2 = []; 
var rows2 = []; 

$(document).ready(function() { 
    demoFromHTML(); 
}) 

function demoFromHTML() { 
$('#exportpdf').click(function() { 

    var doc = new jsPDF(); 
    doc.text(20, 20, 'Name: ' + $('#name').val() + " " + "month: " + $('#month').val()); 


    $('#dataTbl th').each(function() { 
     columns.push({title: $(this).html(), dataKey: $(this).html()}); 
     console.log(columns); 
    }) 

    $('#dataTbl .repeatingSection').each(function() { 
     rows.push({"code1": $('#code1').val(), "code2": $('#code2').val(), "code3": $('#code3').val(), "code4": $('#code4').val(), "code5": $('#code5').val()}); 
    }) 

    $("#mytotals th").each(function() { 
     columns2.push({ title: $(this).html(), dataKey: $(this).html() }) 
    }) 

    rows2.push({ "Total codes": $('#totalinpts').val(), "Total codes for month": $('#month').val() }); 

    var doc = new jsPDF('p', 'pt'); 
    doc.autoTable(columns, rows, { 
     styles: {fillColor: [100, 255, 255]}, 
     columnStyles: { 
      id: {fillColor: 255} 
     }, 
     margin: {top: 60}, 
     beforePageContent: function(data) { 
      doc.text("Header", 40, 30); 
     } 
    }); 

    doc.autoTable(columns2, rows2, { 
     styles: { fillColor: [100, 255, 255] }, 
     columnStyles: { 
      id: { fillColor: 255 } 
     }, 
     margin: { top: 60 }, 
    }); 

    doc.save('Test.pdf'); 
}) 

В коде я попытался использовать columns2 и rows2 массив, чтобы добавить вторую таблицу, однако я не могу показаться, чтобы получить эту работу. Обе мои таблицы в настоящее время представляют собой только небольшие таблицы, поэтому я хочу, чтобы они были на одной странице. Мне удалось получить эту работу, добавив новую страницу, однако она выглядит ужасно.

Любая помощь и советы с этим были бы замечательными.

ответ

0

Используйте doc.autoTableHtmlToJson, чтобы получить столбцы и строки таблицы

var tbl_res = doc.autoTableHtmlToJson(document.getElementById('table_ID'));   
doc.autoTable(tbl_res.columns, tbl_res.data, options); 
Смежные вопросы