解决html2canvas+jspdf 生成pdf 模糊的问题

  • 发表于
  • 前端

问题

VUE项目使用html2canvas+jspdf生成PDF,发现不同的电脑,下载下来的文件大小不一样,清晰度也不一样;或者下载的PDF看着清晰,但使用打印机打印时,MAC下的没问题,但WINDOWS下就是模糊的。

解决

使用流程上来看,一是使用html2canvas生成图片,二是生成PDF。问题出在html2canvas生成图片这个环节,生成的图片不同的电脑分辨率下生成的DPI清晰度不同,比如MAC下生成的就是高清,WINDOWS下生成的就是普通清晰,所以首先调整html2canvas的清晰度(这里会增加图片的大小)。

参数名称类型默认值描述
scale(兼容)number1按比例增加分辨率 (2=双倍).
dpi(新版已取消)number96将分辨率提高到特定的 DPI(每英寸点数)
// 调用的方法
html2canvas(document.querySelector(".report"), {
// 以下字段必填
background: "#ffffff", // 一定要添加背景颜色,否则出来的图片,背景全部都是透明的
scale: 3, // 处理模糊问题
dpi: 300, // 处理模糊问题,新版已取消,只设置scale就行
onrendered: function (canvas) {
// let url = canvas.toDataURL('image/png', 1.0)
let url = canvas.toDataURL();
console.log(url);
},
});

关于dpi、scale 参数问题

现在新的插件版本已经更新到了 1.4.1 ,我感觉现在用新版的生成的图片还好,挺清楚的,新版的没有 dpi 这个参数,可以两个版本对比一下试试那个清楚