javascript - PhantomJS 呈现模糊的 Chart.js Canvas

标签 javascript canvas phantomjs chart.js

我正在尝试通过 PhantomJS 2.1.1 呈现报告,其中 HTML 页面包含由 Chart.js 生成的图表。我可以完全控制该页面。生成的 PDF 应该是可打印的 A4。正如您在下面的屏幕截图中所见,图表非常模糊。

有什么方法可以使 Chart.js 或 PhantomJS 以更高的 DPI 呈现图表/页面,以便绘制的 Canvas 看起来漂亮且清晰?

幻影:

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

图表.js:

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

blurrychart

最佳答案

在您的 phantomjs 页面中添加 viewportSize 和 zoomFactor:

await page.property('viewportSize', { height: 1600, width: 3600 });
await page.property('zoomFactor', 4);

并添加到您的 html head 模板中

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

关于javascript - PhantomJS 呈现模糊的 Chart.js Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443723/

相关文章:

javascript - html5 Canvas 。模糊的线条

javascript - 如何撤消 Canvas 抗锯齿功能?

javascript - 使用 CasperJS 进行基本身份验证

javascript - PhantomJS:将 Javascript 添加到网页(不是 PhantomJS 环境)

javascript - 为什么使用电子邮件和密码创建用户会导致 502 Bad Gateway?

javascript - getJSON 从这个 json 数组中获取数据

html5 Canvas 背景图像模糊和调整大小

ssl - 通过 Charles 代理 casperjs/phantomjs

javascript - 当我将函数传递给 React.js 中的子组件时,为什么会出现未捕获的 TypeError?

javascript - Angular JS 代码不工作