jquery jsPDF生成两个PDF文件

up9lanfz  于 2023-04-20  发布在  jQuery
关注(0)|答案(1)|浏览(142)

我正在使用下面的代码来创建一个PDF格式的图像,当用户点击“下载”按钮时。它几乎工作正常,但问题是它生成了两个PDF文件,而不是一个。

(function($) {
    $(document).ready(function() {
        $('#downloadPDF').click(function() {
            var doc = new jsPDF("p", "mm", "a4");

            function getDataUri(url, callback) {
                var image = new Image();

                image.onload = function() {
                    var canvas = document.createElement('canvas');
                    canvas.width = this.naturalWidth; // or 'width' if you want a special/scaled size
                    canvas.height = this.naturalHeight; // or 'height' if you want a special/scaled size

                    canvas.getContext('2d').drawImage(this, 0, 0);

                    // Get raw image data
                    callback(canvas.toDataURL('image/png').replace(/^data:image\/(png|jpg);base64,/, ''));

                    // ... or get as Data URI
                    callback(canvas.toDataURL('image/png'));
                };

                image.src = url;
            }

            // Usage
            getDataUri('/cover.png', function(dataUri) {
                console.log('RESULT:', dataUri);
                doc.addImage(dataUri, 'png', 0, 0, 210, 297, undefined, 'FAST');
                doc.save('download.pdf')
            });
        })
    })
})(jQuery)

我觉得这是个循环,但我不知道怎么解。

erhoui1w

erhoui1w1#

您似乎调用了callback两次,一次是在注解// Get raw image data之后,另一次是在// ... or get as Data URI之后。根据您想要的情况删除其中一个调用,它应该可以解决问题。

相关问题