在Python pdfkit中指定字体

Foo*_*o L 4 python pdf-generation pdfkit wkhtmltopdf 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;
Run Code Online (Sandbox Code Playgroud)

在html 到 pdf 转换之前的divhtml<style>部分的包装器中,但它没有出现“Times New Roman”。查看二进制文件,似乎它正在使用DejaVuSerif.

有没有办法指定正在转换的文档的字体?

小智 5

我已经成功地使用 .css 传递 CSS 样式表来自定义整个文档的字体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;
}
Run Code Online (Sandbox Code Playgroud)

您可以使用这样的工具将字体转换为base64.

希望能帮助到你!