puppeteer-sharp - 加载本地字体以生成 PDF
问题描述
我正在尝试生成PuppeteerSharp
包含外部必需*.TFF
字体文件的 PDF 文件。
CSS:
@font-face {
font-family: 'my-awesome-font';
src: url('<path-to-local-tff-file>');
}
.my-awesome-font {
font-family: 'my-awesome-font';
}
HTML:
<div class="my-awesome-font">Some value</div>
主要问题是,我如何告诉 PuppeteerSharp 等待所有外部内容文件?
我已经通过创建静态 HTML 页面手动测试了我的 TFF 文件,并且效果很好。所以我从一个很长的Github 问题中尝试了几个建议。
1. 直接添加字体作为内容
await page.AddStyleTagAsync(new AddTagOptions
{
Content = "@font-face { font-family: 'barcode'; src: url('{" + barcodeTFFPath + "}'); }"
});
2.等待外部字体
var session = await page.Target.CreateCDPSessionAsync();
await session.SendAsync("DOM.enable");
await session.SendAsync("CSS.enable");
session.MessageReceived += (sender, e) =>
{
if (e.MessageID == "CSS.fontsUpdated")
{
Console.WriteLine("CSS.fontsUpdated");
}
};
3.调用Goto方法
我没有任何想法这样做,因为我string
通过渲染*.cshtml
具有动态内容属性的文件来获取 HTML。
问候
解决方案
推荐阅读
- django - 将 django RawQueryset 中的字段值转换为不同的 django 字段类型
- django - 从 Django 传递的图表 JS 标题 - 带有撇号的问题 '
- ionic2 - 如何将 ion-tab 图标向右对齐?
- informatica - 在 Informatica 中将 TIMESTAMP 打印到目标表中
- python - 如何在mongoDB中自动存储插入时间?
- hibernate - DefaultAutoFlushEventListener.onAutoFlush 期间 IdentityHashMap 中的挂起线程
- intellij-idea - 如何恢复 IntelliJ 线程面板?
- github - 以 repos 作为链接的 GitHub Pages
- reactjs - webpack 开发服务器不允许 POST 获取请求 - 反应应用
- git - 解决拉入 Atom 的冲突