我正在使用angular-ui tabset来显示几个单独的信息位。由于未激活的选项卡的实际内容是隐藏的,因此如果我只是添加页面的整个主体,则不打印。您在打印后看到的唯一标签内容是当前活动的选项卡。我试图使用addHTML
方法将这些选项卡内的所有内容与页面中的另一个元素一起打印,以保留它的外观。通过jsPDF的addHTML将多个元素添加到PDF
打印其中任何一个单独运作良好,但我似乎无法找到一次打印所有项目的方法。
例如,这是用于打印单个元素的代码。
var pdf = new jsPDF('p', 'pt', 'a4');
pdf.addHTML($('#foo').first(), function() {
pdf.save();
});
这工作(虽然输出为全黑,但我想这是另外一个问题)。现在,我想有几个addHTML
语句来完成添加我需要的内容,然后保存。类似于
var pdf = new jsPDF('p', 'pt', 'a4');
pdf.addHTML($('#foo').first());
_.each($('.bar').first().children(), function(e) {
pdf.addHTML(e);
});
pdf.save();
但是,采用第二种方法保存pdf时,它完全空白。
值得一提的是这个作品,但它并没有我想保持和有更多的内容不是我想要的格式:
var doc = new jsPDF();
doc.fromHTML($('body').get(0), 15, 15, {
'width': 170,
}, function() {
doc.save();
});
试图迫使其选择只是#foo
和.bar
最终出现同样的问题,我已经在上面。
任何建议,正确的方式来做到这一点将不胜感激。
嗨@Linell,我试过你的方法,但我得到'ReferenceError:CanvasRenderer没有在renderWindow中定义'。我猜测这是由于一些缺失的依赖js。你能不能指出我需要包含的正确的js文件来使这个工作起作用? PS:我的页面有很多我想要发布到我创建的PDF的画布元素。 – 2015-10-23 12:56:18