puppeteer - Puppeteer 屏幕截图未在网页上呈现正确的字体?
问题描述
我正在使用 Puppeeter 截屏,无论我做什么,页面上的文本都不会以正确的字体呈现。我已经进行了大量研究,其中包括了一些人们提到的可能对字体有帮助的标志。我在云中的 docker 容器中运行 puppeteer。
这是我的代码片段。在我截屏的页面上,我有
const generateImage = async () =>{
const browser = await puppeteer.launch({headless: true, args: ['--no-sandbox','--font-render-hinting=none']});
const page = await browser.newPage();
await page.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36");
await page.setViewport({width:1200,height:1200,});
await page.goto(url, {"waitUntil" : "networkidle0"});
await page.screenshot({path:`./${form.zoneid}-${form.formid}.jpg`,type: 'jpeg', quality: 100,});
await browser.close()
}
await generateImage()
这是我要截屏的 URL: https ://dev.graceblocks.com/form?x=MTI0fGdyYWNlYmxvY2tzLTF8NDU=&mode=preview&social=1
请注意标题文本是 Arial Black,但屏幕截图始终默认为 Times new Roman ......所以不知何故,它似乎忽略了字体设置。我认为 Arial Black 是任何浏览器都可以识别的标准网络字体?
为了让这个屏幕截图呈现正确的字体,我需要设置一些其他设置吗?
解决方案
推荐阅读
- c# - 如何从对象实例中设置和获取公共字段 - C#
- sql - SQL 中的传递匹配
- wso2is - 无法通过 Angular 访问 WSO2 IS 5.3.0 管理服务
- python - 将行向量添加到新数据框会添加标题名称,但不会添加值
- c# - 使用 Guid 书签的 C# 表达式
- database - 跨多个重复数据的微服务的数据一致性
- javascript - 如何找到所有包含 X 个字符的单词?
- python - 如何使用 python 的 guppy 打印所有行
- maven - 由于找不到 web.xml,Maven-war-plugin 在 mvn install 执行期间失败
- symfony - 使用外键关系验证表单