python - 在 Python pdfkit 中指定字体
问题描述
我在 Debian Docker 映像上使用 python 3.6 和 pdfkit 0.6.1(似乎是 wkhtmltopdf 0.12.3.2)。我尝试查看docs & wkhtmltopdf 选项,但无法为整个文档指定字体。页脚和页眉只有字体选项。
我尝试指定
font-family: "Times New Roman", Times, serif;
在将html 转换为 pdf 之前div
,在我的 html 部分的包装器中<style>
,但它没有出现“Times New Roman”。查看二进制文件,它似乎正在使用DejaVuSerif
.
有没有办法为要转换的文档指定字体?
解决方案
我已经设法自定义整个文档的字体,使用user-style-sheet
. 在您的 CSS 文件中,为了避免字体结构出现问题,我建议您将字体转换为 base64 格式。base64 参考
@font-face {
font-family: 'YourFont';
font-style: normal;
font-weight: 400;
src: url(data:font/opentype;charset=utf-8;base64,d09GRgABAAAAAD00AA4A---[large string ommited]----3MAuAH/hbAEjQA=) format("woff"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAARAQAABAAQRFNJRwAAAAEAAJUIAAA---[large string ommited]-----wAAAAAAAAAAAAEAAAAA) format("truetype");
}
* {
font-family: "YourFont" !important;
}
您可以使用这样的工具将您的字体转换为base64
.
希望能帮助到你!
推荐阅读
- c# - 更改第二个文本框时保留除以零消息
- django - 即使保存到数据库后密码也不会散列
- apache-spark - kafka max.poll.records 在火花流中不起作用
- python - Pandas Dataframe .loc 布尔附加索引到第一列
- jquery - 如何在jQuery中按名称删除带有子哈希的哈希
- json - jmeter - 如何在正文数据中格式化 json(从正则表达式中提取)
- python-3.x - 为什么我的 python 脚本不会在端口 36296 上启动服务器?
- c++ - 如何将此向量的元素添加在一起?
- amazon-web-services - AWS 在我的 CLI 上删除用户,但不在 IAM 上
- google-api - 使用带有颤振的 googleApis 对话框流时出现 403 错误