无法使用jsPDF获取div内容

3
我尝试使用 jsPDF 和 html2canvas 从 HTML 生成 PDF。它可以使用整个页面,但无法使用 getElementById() 获取特定的 div 元素。控制台提示信息如下:Original Answer。
IndexSizeError: Index or size is negative or greater than the allowed amount html2canvas.js:2859

以下是我的脚本。

最初的回答

 <script>
        let doc = new jsPDF();

        doc.addHTML(document.getElementById('content'), function() {
            doc.save('html.pdf');
        });
    </script>

有人能帮我解决这个问题吗?

最初的回答:


假设 document.getElementById('content') 返回了某个元素,最好从这里开始。 - undefined
它返回 [object HTMLDivElement] ,我认为这应该是正确的。 - undefined
1个回答

2
"doc.addHTML()现在已经弃用了。新的支持向量的API,doc.html(),工作效果更好。看看他们的示例吧。这是可行的代码:"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js" 
        integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/"
        crossorigin="anonymous"></script>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<!-- html2canvas 1.0.0-alpha.11 or higher version is needed -->

<script>
    function download() {
        let pdf = new jsPDF('l', 'pt', 'a3');
        pdf.html(document.getElementById('content'), {
            callback: function (pdf) {
                pdf.save('test.pdf');
            }
        });
    }
</script>

更新:如果你得到了一个空白页面,尝试使用不同版本的html2canvas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接