我正在使用http://tabulator.info/在单个HTML文档页面上生成多个表。
当我通过按钮触发pdf下载时,应生成一个pdf文档,其中包括该文档中的表格。 到目前为止,下载单个表是可行的,但是我不知道在jsPDF完成之前如何潜在地向文档中添加更多表。
到目前为止,我已经尝试过的是,在触发lastTable1 = doc.lastAutoTable
的下载时,我在documentProcessing
函数中抓住了table1
对象。计划是将其传递到table2.download()
并通过autoTable: function(doc){doc.autoTable(lastTable1)}
添加。
虽然我确实使用这种方法抓取了一个对象,但是我不能用它来重建自动表对象(例如doc.autoTable(lastTable1)
不会再产生相同的表)。
我准备了一个简单的jsfiddle,在其中生成了两个表和一个下载按钮。只是为了说明无法重建自动表对象,在创建pdf之前,我再次将其添加到doc
中。
答案 0 :(得分:0)
制表符没有内置的方法来执行此操作。
但是好消息是添加一些东西来自己处理应该很容易。
This Issue显示了如何使用jsPDF将PDF合并到同一文档中。
您可以使用制表器中内置的 downloadReady 回调来拦截从每个表创建的PDF文件,然后使用上述问题中概述的方法将它们组合在一起
var table = new Tabulator("#example-table", {
downloadReady:function(fileContents, blob){
//fileContents - the unencoded contents of the file
//blob - the blob object for the download
mergeWithPreviousPDFs(blob); // call a function based on the previous issue that merges the new PDF with the previous PDF's
return blob; //must return a blob to proceed with the download, return false to abort download
}
});
如果您从此回调中返回 false ,则不会触发下载,因此您可以拦截除最终表以外的所有PDF输出,以防止下载,然后返回最后一张表的组合输出触发下载。