javascript - JsPDF addImage jpeg 背景为黑色

标签 javascript canvas png jpeg jspdf

我使用 JsPDF 库并且遇到问题,当我使用 addImage 格式“JPEG”时,我的背景是黑色的。为什么是这种格式?因为当我在保存 12 个图表 = 100 MB++ 后使用格式“PNG” - 大小文件 PDF 时。我看到了所有问题,但没有找到确切的答案。
我的功能如下所示:

<canvas id = 'myCanvas'></canvas>

var doc = new jsPDF('p','pt', 'a2');
var canvas = document.querySelector('#myCanvas');
var canvasImg = canvas.toDataURL('image/JPEG');
doc.addImage(canvasImg,'JPEG', 70,700,1000,300 ); //left, from above, width, height
doc.addHTML($(id_page),function(){
  doc.save('test.pdf');
});

这是默认模板,但我尝试添加更多样式,包括“setFillColor” - 没用!尝试添加带有“destination-over”的白色 Canvas ,好主意,但是......实现,今天 2018 年,可能是谁找到了工作解决方案,我真的希望至少有一些工作信息。非常感谢。

最佳答案

PNG 支持 alpha channel (透明度),而 JPEG 不支持。

一种解决方法是在导出之前用您喜欢的任何背景颜色填充 Canvas 。

创建 Canvas 之后,在调用 Chart.js 绘制图表之前,创建一个上下文并用您喜欢的任何颜色填充整个 Canvas 。

var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "white";
ctx.fillRect(0, 0, canvas.width, canvas.height);

关于javascript - JsPDF addImage jpeg 背景为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51551401/

相关文章:

javascript - 如何检测html文件中的所有mso书签?

javascript - 如何在不使用 gulp 工具的情况下在 Angular 中使用 pdfmake 自定义字体?

javascript - paper.js 沿路径的动画

java - 将 GIF 图像转换为 PNG 格式,32 位深度

html - png图像路径后这些数字是什么意思?

javascript - 数组参数与传递给 Javascript 函数的直接参数

javascript - 找出从脚本中加载 JS 脚本的基本 URL

javascript - 如何将滚动条添加到 HTML5 Canvas 中的矩形?

python - 如何使用 PIL/Pillow 将图像合并到 Canvas 中?

svg - 使用Inkscape命令行将svg转换为png失败