将 div 保存为 PDF 时未定义 jsPDF
jsPDF is not defined when saving div to PDF
我正在尝试使用 jsPDF 保存具有特定 ID 的 div 元素,但得到 Uncaught ReferenceError: jsPDF is not defined
。尝试了多种不同的方法来解决此问题,包括 Whosebug 上的所有可用解决方案,其中 none 有效。
这是 div 元素的样子(它是一个 table,根据用户的选择自动填充,我删除了大部分选项以减少此示例的行数)。下面是一个快速片段,可以让您了解发生了什么。它仍然说 jsPDF 没有定义:
$('#savePDF').click(function() {
var pdf = new jsPDF('p', 'pt', 'letter');
source = $('#yourSummary');
specialElementHandlers = {
'#bypassme': function (element, renderer) {
return true
}
};
margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
pdf.fromHTML(
source,
margins.left,
margins.top, {
'width': margins.width,
'elementHandlers': specialElementHandlers
},
function (dispose) {
pdf.save('your-summary.pdf');
}, margins
);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js"></script>
<div id="yourSummary" class="modal-body">
<table id="yourExterior" class="table table-hover">
<h5>Exterior</h5>
<tbody>
<tr>
<th scope="row">Body colour</th>
<td id="sumBC"></td>
</tr>
</tbody>
</table>
</div>
<button class="btn-primary" id="savePDF">Save configuration as PDF</button>
但是在浏览器中按下按钮后出现以下错误:
Uncaught ReferenceError: jsPDF is not defined
at HTMLButtonElement.<anonymous> (main.js:34)
at HTMLButtonElement.dispatch (jquery-3.5.1.slim.min.js:2)
at HTMLButtonElement.v.handle (jquery-3.5.1.slim.min.js:2)
我做错了什么以及如何解决这个问题?
使用之前的版本
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js"></script>
版本 2.0.0 非常不同。
例如,您将使用 jspdf.jsPDF 而不是方法“jsPDF”,但您会看到新的错误。
我正在尝试使用 jsPDF 保存具有特定 ID 的 div 元素,但得到 Uncaught ReferenceError: jsPDF is not defined
。尝试了多种不同的方法来解决此问题,包括 Whosebug 上的所有可用解决方案,其中 none 有效。
这是 div 元素的样子(它是一个 table,根据用户的选择自动填充,我删除了大部分选项以减少此示例的行数)。下面是一个快速片段,可以让您了解发生了什么。它仍然说 jsPDF 没有定义:
$('#savePDF').click(function() {
var pdf = new jsPDF('p', 'pt', 'letter');
source = $('#yourSummary');
specialElementHandlers = {
'#bypassme': function (element, renderer) {
return true
}
};
margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
pdf.fromHTML(
source,
margins.left,
margins.top, {
'width': margins.width,
'elementHandlers': specialElementHandlers
},
function (dispose) {
pdf.save('your-summary.pdf');
}, margins
);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js"></script>
<div id="yourSummary" class="modal-body">
<table id="yourExterior" class="table table-hover">
<h5>Exterior</h5>
<tbody>
<tr>
<th scope="row">Body colour</th>
<td id="sumBC"></td>
</tr>
</tbody>
</table>
</div>
<button class="btn-primary" id="savePDF">Save configuration as PDF</button>
但是在浏览器中按下按钮后出现以下错误:
Uncaught ReferenceError: jsPDF is not defined
at HTMLButtonElement.<anonymous> (main.js:34)
at HTMLButtonElement.dispatch (jquery-3.5.1.slim.min.js:2)
at HTMLButtonElement.v.handle (jquery-3.5.1.slim.min.js:2)
我做错了什么以及如何解决这个问题?
使用之前的版本
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js"></script>
版本 2.0.0 非常不同。
例如,您将使用 jspdf.jsPDF 而不是方法“jsPDF”,但您会看到新的错误。