我在这里遇到以下问题:
使用jsPDF时,应该可以从HTML代码生成PDF。 我正在考虑这样做的方式是使用图像,我似乎无法以正确的方式将html表格放入pdf(这清除了所有的表格布局)。在使用html2canvas时,添加HTML插件仍然不会生成包含内容的pdf。我没有收到任何错误,所以我不知道问题是什么。
同样使用下面链接中给出的示例,代码编写的方式略有不同,但是当我使用此代码时,甚至不执行作为参数传递的同名函数,因此我使用以下构造。
pdf.addHTML(document.title, (function() {})());
即使这是正确的,内容也不会显示在PDF内部。
http://mrrio.github.io/jsPDF/#
我的代码在功能块中尝试了以下三种结构:
$(function() {
$('#createPDF').click(function () {
var pdf = new jsPDF('p', 'pt', 'a4');
var options = {
pagesplit: true
};
pdf.addHTML($('body'), 0, 0, options, (function() {
pdf.save("test.pdf");
})());
var pdf = new jsPDF('p','pt','a4');
pdf.addHTML('Hallo' ,function() {
var string = pdf.output('datauristring');
$('.preview-pane').attr('src', string);
});
pdf.save('Test.pdf');
var doc = new jsPDF();
window.alert(document.title);
doc.addHTML(document.title, (function() {})());
doc.text(20, 20, document.getElementById('learningCurve'));
doc.text(20, 20, document.getElementById('123'));
doc.setProperties({ pagesplit: true} );
doc.addPage();
doc.text('Do you like that?');
doc.save('Maandrapportage.pdf');
});
});
答案 0 :(得分:0)
尝试仅调用save()方法一次。 使用addHTML()方法时,其余代码应放在回调函数中。 第一个addHTML参数必须是一个元素而不是一个String(document.title返回一个String)。
$('#createPDF').click(function () {
var pdf = new jsPDF('p', 'pt', 'a4');
var options = {
pagesplit: true
};
pdf.addHTML(document.getElementById('someID'),0, 0, options,function() {
pdf.text(20, 20, "put only strings here ...");
pdf.addHTML(document.getElementById('anotherID'),0,50,function() {
pdf.text(20, 100, "more text here ...");
pdf.addPage();
pdf.text(20, 10, "text in another page ...");
pdf.save("document.pdf");
});
});
});