【发布时间】:2021-12-13 23:07:13
【问题描述】:
我正在开发一项功能,该功能从 Bootstrap 模式中获取内容,将其保存为 PDF 并将文件下载到我的本地 PC。
这是我的 HTML 和 listItem.js 文件的摘录
function downloadPDF() {
// some stuff
html2canvas($("#printItems")[0], {
allowTaint: true
}).then(function(canvas) {
var imgData = canvas.toDataURL('image/jpeg, 1.0');
var pdf = jsPDF({
unit: 'mm',
format: 'a4',
orientation: 'portrait'
});
pdf.addImage(imgData, 'jpeg', 15, 2);
pdf.save('test.pdf');
});
}
<div class="modal-body" id="printItems">
<div class="container" id="selectedItems"></div>
</div>
<script type="text/javascript" src="/library/html2canvas.min.js"></script>
<script type="text/javascript" src="/library/jspdf.min.js"></script>
我遇到的问题是当我点击pdf.save('test.pdf') 时,函数失败,我收到以下错误:
Uncaught(in promise) TypeError: l(...).createObjectURL is not a function
我不确定我在这里做错了什么。另外,我正在使用 jsPDF 1.5.3 版和 html2canvas 1.1.4 版
【问题讨论】:
-
您使用的是哪个浏览器?大多数现代版本都支持
createObjectURL:developer.mozilla.org/en-US/docs/Web/API/URL/… -
另请注意,您缺少
</script>标签,但我认为这不会导致您的问题。 -
我使用的是 92.0.4515.107 版的 google Chrome 和 92.0.902.67 版的 MS Edge
-
@RoryMcCrossan,我打字很快。你是对的,这不是我的问题的原因。
-
在这种情况下,您需要获得最新版本的批准。除了解决实际导致代码正常运行的问题外,还会有无数的安全修复,这应该可以帮助您论证您的情况。
标签: javascript html jquery jspdf html2canvas