如何从pdf(jspdf)中去除黑色背景?

5

我正在使用html2canvas和jspdf将HTML转换为PDF。

我正在使用A3格式的PDF,但是内容宽度为1000px。所以在1000px之后,PDF显示黑色背景。

canvas{
    background: #fff !important;
    background-color: #fff !important
    margin: 0;
}
#cisForm {
    padding: 10px;
    width: 1000px;
    margin: 0;
    background: #fff !important;
}

cisForm is body

<script type="text/javascript">
    window.onload = function() {
            html2canvas(document.body).then(function(canvas) {
                background:'#fff',
                document.getElementById("cisForm").appendChild(canvas);
                document.body.appendChild(canvas);
                var context = canvas.getContext("2d");
                context.fillStyle="#FFFFFF";

                 l = {
                     orientation: 'p',
                     unit: 'pt',
                     format: 'a3',
                     compress: true,
                     fontSize: 8,
                     lineHeight: 1,
                     autoSize: false,
                     printHeaders: true
                 };

                var doc = new jsPDF(l, "", "");
doc.addImage(canvas.toDataURL("image/jpeg"),"jpeg",0,0)
                window.location=doc.output("datauristring")
            });
        }
    </script>

这段代码没有用处,它是将HTML转换为PDF。

还有一个问题:

有些受限制的内容只能以PDF格式显示,而有些内容则不能。

我们需要在哪里设置页面数量?

如何从PDF中删除黑色背景enter image description here


我认为问题在于html2canvas会给你一个带有透明像素的png图像,而jspdf会将其转换为jpg,并将这些透明像素转换为黑色。在调用html2canvas之前,请尝试将body和html背景设置为白色。 - Kaiido
我已经为HTML body设置了背景,但它并没有影响到那个黑色的颜色。 - Deen
奇怪,你能创建一个fiddle吗?我无法重现这个问题(附注:你的代码中有很多不必要的东西)。 - Kaiido
我会在 jsfiddle 上提供代码。还有一个问题,所有的数据都没有出现。这是一个非常冗长的页面。 - Deen
2
你解决了吗? - Björn C
3个回答

1

尝试将你的body背景色设为#FFFFFF。


0
这是因为您指定的宽度。尝试调整宽度或在html2canvas选项中指定。

0

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