将画布转换为pdf:黑色背景



我想将我的html画布导出为pdf并下载它,我做了一些搜索,下面的脚本对我来说很好:

<script language = "JAVASCRIPT">
var canvas = document.getElementById('mycanvas');
var context = canvas.getContext('2d');
// draw a blue cloud
context.beginPath();
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80);
context.closePath();
context.lineWidth = 5;
context.fillStyle = '#8ED6FF';
context.fill();
context.strokeStyle = '#0000ff';
context.stroke();
download.addEventListener("click", function() {
// only jpeg is supported by jsPDF
var imgData = canvas.toDataURL("image/jpeg", 1.0);
var pdf = new jsPDF();
pdf.addImage(imgData, 'JPEG', 0, 0);
var download = document.getElementById('download');
pdf.save("download.pdf");
}, false);
</script>

但是我得到的是黑色背景的画布!

我尝试过其他代码和我在互联网上找到的许多解决方案,我尝试过更改画布标签中的背景颜色,但没有任何效果。。

请帮忙吗?

与其作为JPEG下载,不如尝试作为PNG:下载

download.addEventListener("click", function() {
// only jpeg is supported by jsPDF
var imgData = canvas.toDataURL("image/png", 1.0);
var pdf = new jsPDF();
pdf.addImage(imgData, 'PNG', 0, 0);
var download = document.getElementById('download');
pdf.save("download.pdf");
}, false);

最新更新