1 Star 5 Fork 0

taohel / node_poster

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Node Poster

简介

使用nodejs快速生成图片,使用 html 模板生成图片,可加入动态参数。可用于分享海报、邀请卡片、拉新图片等

实现说明

Puppeteer 是一个 Node 库,可以用来自动化的测试网站,它可以在后台运行,不会影响用户的使用

可以访问一个网页地址,然后截图,或者是生成PDF文件。也可以传入HTML字符串渲染成页面,然后截图或者生成PDF文件

我们使用Pug模板引擎,在服务端生成网页,将页面地址传入 Puppeteer,然后生成图片并返回给用户

优劣对比

相比 canvas 生成图片

使用 HTML 页面生成图片,可以使用 CSS、JS 等,可以实现更加复杂的页面效果,开发效率更高、成本更低

Puppeteer 生成的图片更加清晰,不会出现锯齿,但是生成图片的速度会慢一些,

不过生成速度在100ms左右,对于分享海报、邀请卡片等,速度还是可以接受的

在服务端生成图片,兼容性更好,不需要考虑浏览器兼容问题

安装教程

# 安装依赖
npm i

# 启动服务
node server.js

使用说明

  1. 修改 /views/index.pug 中的内容,Pug是HTML的模板引擎,可是正常使用CSS、JS等,可以参考 Pug官网

  2. 访问 http://localhost:37654 即可看到效果

  3. 可以通过query进行参数传递,如 http://localhost:37654?name=world,则页面中可以使用 name 变量,进行内容的替换

  4. 修改 /routes/index.js 中的内容,可以对图片的生成进行控制,如修改图片的宽高、像素比等

  5. 访问 http://localhost:37654/poster 即可看到生成的图片,也需要传递参数,如 http://localhost:37654/poster?name=world

参数说明

qr 参数为二维码内容,如果不传,则不生成二维码 如 http://localhost:37654/poster?qr=hi world

二维码宽高、边距等参数,可以在 /routes/index.js 中进行修改,可参考 qrcode 的文档

id 参数为mysql数据库中的id,在 /routes/index.js 编写sql语句,然后在 /views/index.pug 中使用 data 变量

需要在 /server.js 开启数据库连接

部署问题

在 Ubuntu20 运行 Puppeteer 时,会报错 Failed to launch the browser process!,执行以下命令即可

sudo apt-get install -y libx11-xcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libnss3 libnspr4 libgtk-3-0 libxss1 libasound2 libgbm1

在服务器中 中文乱码问题

方法一:在ubuntu上安装中文字体库

方法二:在css中引入字体包,也可以更好的还原UI稿件。可能在首次加载慢一点,但是后续加载速度几乎没有影响。也可以对字体包进行裁剪,只保留需要的字体。

MIT License Copyright (c) 2023 taohel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于 Nodejs 快速生成海报,使用 HTML 模板生成图片,可加入动态参数。可用于分享海报、邀请卡片、拉新图片等。 展开 收起
JavaScript 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/taohel/node_poster.git
git@gitee.com:taohel/node_poster.git
taohel
node_poster
node_poster
main

搜索帮助