繁体   English   中英

html2canvas返回黑色图像

[英]html2canvas returns black image

我有一个问题,通过html2canvas将div渲染为图像。

这是我的javascript代码:

function saveImages(i)
        {
            html2canvas($("#page"+i), {
                logging:true,
                onrendered: function(canvas){
                    var url = canvas.toDataURL();
                    $.post("saveImage.php", {"path": url, "index":i}, function(data){
                        var p = Math.round(((i+1)/totalPages)*100);
                        $("#progressGraphical").css("width", p+"%");
                        if(p>=100){p = "fertig!"}else{p += "%";}
                        $("#progress").html((i+1)+"/"+totalPages+" Seiten gespeichert - "+p);
                        if(i<totalPages) saveImages(i+1);
                    });
                }
            });
        }
        $(document).ready(function(){
            saveImages(0);
        });

由于使用jquery函数完成了post请求,我不得不递归地工作。 请求的php文件采用canvas.toDataUrl-Method生成的base64编码的url,对其进行解码并将其保存到名为“page0 / 1/2 /.../ n.png”的图像文件中。

所有这一切都运行良好 - 直到超过总共约24个递归调用。 如果是这种情况,则html2canvas生成的所有图像(即使是第24次递归调用之前的图像)也会被绘制为空白。 我已经查看了base64编码的url - 并且只有两个相等的字符串可以交替使用。

错误在哪里?

https://stackoverflow.com/a/23928038/1815624

只需添加css background-color:#ffffff到你的表:)

希望这可以帮助

我将内容包装到每个所需页面的div中,然后给出class="pdfpage"然后将css设置为pdfpage{background:#FFFFFF;}

正如我所评论的那样,首先我不需要将渲染元素的背景设置为白色,因为它已经是白色的......但实际上它是无色的......

复制了我的答案: https//stackoverflow.com/a/25457584/1815624

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM