#javascript #jquery #jspdf
Вопрос:
Я пытаюсь использовать jsPDF для загрузки PDF-версии моего веб-сайта. Я получаю эту ошибку jQuery.Отложенное исключение: r[o] не определено. Я думаю, что это связано с тем, что «var source = $(«#content»)[0]» в теле каким-то образом не определено, но я не уверен, что это единственная проблема.
Необходимый импорт (в голове):
<!-- jQuery library -->
<script src="static/js/jquery.min.js"></script>
<!-- jsPDF library -->
<script src="static/js/jsPDF-1.3.2/dist/jspdf.min.js"></script>
/* Bootstrap at end of body */
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"></script>
HTML
<div class="container-fluid" id="content">
<div class="row">
<h1>UH ENERGY</h1>
</div>
<div class="row">
<a href="#" id="downloadPDF" >Download PDF</a>
</div>
<!--CHART 1-->
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12">
<canvas id="myChart" class="bar-chart"></canvas>
<!-- Continued -->
функция в main.py
$( document ).ready(function() {
var doc = new jsPDF();
var specialElementHandlers = {
"#bypassme": function (element, renderer) {
return true
}
};
var margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
var source = $("#content")[0];
doc.fromHTML(
source.innerHTML,
margins.left,
margins.top,
{
"width": margins.width,
"elementHandlers": specialElementHandlers
},
function (dispose) {
doc.save("ICEV-EV.pdf");
},
margins
);
});