javascript – PhantomJS渲染模糊的Chart.js画布

我试图通过PhantomJS 2.1.1提交报告,其中 HTML页面包含Chart.js生成的图表.我完全控制了该页面.生成的PDF应该是可打印的A4.从下面的截图可以看出,图表非常模糊.

有没有什么办法可以使Chart.js或PhantomJS将图表/页面渲染在更高的DPI上,以便绘制的画布看起来很漂亮和锋利?

PhantomJS:

page.property('paperSize',{
  format: 'A4',orientation: 'portrait',border: '2cm'
});

chart.js之:

var lineChart = new Chart(ctx).Line(data,{
  animation: false,responsive: true,pointDot: false,scaleShowLabels: true,showScale: true,showTooltips: false,bezierCurve : false,scaleShowVerticalLines: false
});

解决方法

在您的phantomjs页面添加viewportSize和zoomFactor:
await page.property('viewportSize',{ height: 1600,width: 3600 });
await page.property('zoomFactor',4);

添加您的html头模板

<script>
  window.devicePixelRatio = 4;
</script>

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...