我正在尝试生成我在浏览器中呈现的页面的 pdf。我有一个按钮,您可以单击它,但会生成错误。谁能帮帮我
很多 jsPDF 问题(有些有答案)但不是这个,任何想法。没有做任何聪明的事情。只是从示例中直接复制/粘贴。
我的html
<button id="cmd">generate PDF</button>
<div class="row" id="dashb">
<div class="col-md-6">
<h1>Hello</h1>
<p>World</p>
</div>
</div>
<link rel="stylesheet" href="/Content/vis/css/vis.css" />
<link href="~/Content/css/leaflet120.css" rel="stylesheet" />
<link href="~/Content/css/leaflet07.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="~/Content/js/leaflet120.js"></script>
<script src="~/Content/js/d3.v4.min.js"></script>
<script src="~/Content/js/leaflet07.js"></script>
<script src="/Content/vis/js/wrap.js"></script>
<script src="/Content/vis/js/d3tip.js"></script>
<script src="/Content/vis/js/d3pie.js"></script>
<script src="/Content/vis/js/vis.columnChart.js"></script>
<script src="/Content/vis/js/vis.lineChart.js"></script>
<script src="/Content/vis/js/vis.pieChart.js"></script>
<script src="/Content/vis/js/vis.circleMap.js"></script>
<script src="/Content/vis/js/vis.js"></script>
<script src="~/Scripts/jspdf.debug.js"></script>
<script src="~/Scripts/html2canvas.min.js"></script>
<script>
$(function () {
var specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
$('#cmd').click(function () {
var doc = new jsPDF();
doc.fromHTML(
$('#dashb').html(), 15, 15,
{ 'width': 170, 'elementHandlers': specialElementHandlers },
function () { doc.save('sample-file.pdf'); }
);
});
});
</script>
这是错误
Uncaught TypeError: element.className.split is not a function
at elementHandledElsewhere (jspdf.debug.js:7215)
at DrillForContent (jspdf.debug.js:7426)
at DrillForContent (jspdf.debug.js:7427)
at DrillForContent (jspdf.debug.js:7427)
at DrillForContent (jspdf.debug.js:7427)
at jspdf.debug.js:7595
at done (jspdf.debug.js:7470)
at Image.img.onerror.img.onload (jspdf.debug.js:7492)
这是我的代码
<script>
$(function () {
var specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
$('#cmd').click(function () {
var doc = new jsPDF();
doc.fromHTML(
$('#dashb').html(), 15, 15,
{ 'width': 170, 'elementHandlers': specialElementHandlers },
function () { doc.save('sample-file.pdf'); }
);
});
});
</script>
最佳答案
您需要将 click()
事件处理程序移至函数的开头。我包括了这个fiddle显示它工作。
$('#cmd').click(function () {
var specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
var doc = new jsPDF();
doc.fromHTML(
$('#dashb').html(), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
},
function () {
doc.save('sample-file.pdf');
}
);
});
关于javascript - 我有一个 jsPDF 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46936620/