繁体   English   中英

在Python pdfkit中指定字体

[英]specify font in Python pdfkit

我在Debian Docker映像上使用python 3.6和pdfkit 0.6.1(似乎是wkhtmltopdf 0.12.3.2)。 我尝试查看docswkhtmltopdf选项,但无法为整个文档指定字体。 页脚和页眉只有字体选项。

我尝试指定

font-family: "Times New Roman", Times, serif;

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

有没有办法为要转换的文档指定字体?

我设法使用user-style-sheet通过CSS样式表自定义了整个文档的字体。 在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

希望能帮助到你!

好吧,看来我需要安装ttf-mscorefonts-installer ,但是首先,我需要向ttf-mscorefonts-installer中添加contrib sources.list

sed -Ei 's/main$/main contrib/' /etc/apt/sources.list

然后安装软件包

apt-get -y install ttf-mscorefonts-installer

我能够找到的最接近的免费字体是ttf-liberation Liberation Serif ,这意味着html样式字体必须更改为:

font-family: "Times New Roman", Times, "Liberation Serif", serif;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM