我需要在 Node 服务器上将 HTML 模板转换为图像。
服务器将以字符串形式接收 HTML。我尝试过 PhantomJS(使用一个名为 Webshot 的库),但它不能很好地与 Flex 框和现代 CSS 配合使用。我尝试使用 Chrome 无头浏览器,但它似乎没有用于解析 html 的 API,只有 URL。
目前将一段 HTML 转换为图像的最佳方法是什么?
有没有办法在模板模式而不是 URL 模式下使用无头 Chrome?我的意思是,而不是做类似的事情
chrome.goTo('http://test.com')
我需要类似的东西:
chrome.evaluate('<div>hello world</div>');
本文评论中建议的另一种选择是
将模板保存在服务器上的文件中,然后在本地提供该模板并执行以下操作:
chrome.goTo('http://localhost/saved_template');
但这个选择听起来有点尴尬。还有其他更直接的解决方案吗?
您可以使用一个名为的库傀儡师 https://www.npmjs.com/package/puppeteer。
示例代码片段:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setViewport({
width: 960,
height: 760,
deviceScaleFactor: 1,
});
await page.setContent(imgHTML);
await page.screenshot({path: example.png});
await browser.close();
这会将 HTML 的屏幕截图保存在根目录中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)