puppeteer 网页截图
以往都是怎么生成海报的?
在开发中经常会遇到「生成海报长图」的需求,一般都是这么做的:
- 后端生成:引入会图库进行绘制
- 前端生成:用原生 canvas 进行绘制、用一些 js 库(html-to-canvas)
这么用过来的体验就是:无论是谁生成,都会遇到海报上各个元素的定位困难、样式还原的困难、动态内容和动态海报尺寸不好把控等问题。
因此,经过一波探索,接触了puppeteer
这个「高级货!」,用完之后,简直有种相见恨晚的感觉!
所以现在要想生成一个复杂的海报或者长图的流程变成了这样:
- 编写海报承载 web 页面
- 调用 puppeteer 截图服务,对 web 页面进行截图,并返回图片或者图片地址给调用者