设置jsPDF对象的文本颜色在IE中不起作用

时间:2019-05-07 23:37:04

标签: javascript internet-explorer colors jspdf

我有一小段文字代表pdf文件中某些内容的状态。我希望“失败”文本为红色并在其旁边带有红色圆圈,同时让“通过”文本为带有绿色圆圈的绿色文本。在chrome和firefox中,此方法工作得很好,但在IE中却显示为黑色(适用于版本11,但可能也出现在下面的所有内容中)。

这是相关代码:

if(status === Status.FAIL){
     pdf.setTextColor("#ff0000")
     pdf.setFillColor("#ff0000")
}
else if(status === Status.PASS){
     pdf.setTextColor("#00ff00")
     pdf.setFillColor("#00ff00")
}
else if(status === Status.WARNING){
     pdf.setTextColor("#FFD700")
     pdf.setFillColor("#FFD700")
}

pdf.text(status, 747, offset);
pdf.circle(740, offset - 3.5, 5, "F")

IE Generated PDF

Literally every other browser

1 个答案:

答案 0 :(得分:0)

设置颜色时,请尝试使用RGB而不是十六进制代码。我进行了一个演示来设置jsPDF对象的颜色,并且在IE和Chrome中效果很好:

<script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js"></<>script>
    <script src="https://cdn.bootcss.com/jspdf/1.3.4/jspdf.debug.js"></<>script>
    <script>
        function init() {
            var doc = new jsPDF();

            doc.setFillColor(255, 0, 0);
            doc.circle(20, 20, 2, 'F');

            doc.setTextColor(255, 0, 0);
            doc.text(24, 21.5, 'Fail');

            doc.setFillColor(0, 255, 0);
            doc.circle(20, 30, 2, 'F');

            doc.setTextColor(0, 255, 0);
            doc.text(24, 31.5, 'Pass');

            doc.setFillColor(255, 215, 0);
            doc.circle(20, 40, 2, 'F');

            doc.setTextColor(255, 215, 0);
            doc.text(24, 41.5, 'Warning');

            doc.save('Test.pdf');
        }
    </script>
</head>
<body onload="init()">
</body>