将 HTML 作为图像渲染到 Node.js 中的 Buffer 中
Posted
技术标签:
【中文标题】将 HTML 作为图像渲染到 Node.js 中的 Buffer 中【英文标题】:Render HTML as image into Buffer in Node.js 【发布时间】:2018-12-24 15:57:30 【问题描述】:呈现原始 html 字符串的最简单方法是什么,例如:
<b>Hello World</b>
作为 PNG 图像放入标准 Node.js 缓冲区?
我一直在 npm 上搜索一个可以让我这样做的模块,但我一直找不到。它们似乎都直接渲染到一个文件中。
【问题讨论】:
可能使用无头浏览器及其打印功能。所以看看puppeteer
或类似的。
@Sirko 这正是我想要的。太感谢了!我希望你能回答我,这样我才能相信你。 :)
【参考方案1】:
一种方法是使用类似puppeteer 的东西来模拟浏览器环境,然后使用它的屏幕截图/打印功能来创建PNG 文件。
一些代码(在 puppeteer 文档之后 - 未测试):
const puppeteer = require('puppeteer');
(async () =>
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent( yourHTMLCode );
await page.screenshot(path: 'example.png');
await browser.close();
)();
【讨论】:
以上是关于将 HTML 作为图像渲染到 Node.js 中的 Buffer 中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用SendGrid将图像嵌入到Node.js中的html邮件中
如何使用 node js 将图像上传并保存到 mongodb