我有一个django应用程序,我想从我的django视图创建一个pdf。 我使用weasyprint,由于某种原因它不接受我的自定义字体。 字体网址正常工作,当我使用相同的font-face渲染相同的html时,我看到了正确的字体,但我的pdf渲染错误。我也试过base64字体字符串,但没有运气。我的渲染代码是:
driver.execute_script('arguments[0].click();', ExpiryYear)
知道我做错了什么吗?
答案 0 :(得分:1)
正如您可以在文档中看到的那样:
WeasyPrint应该支持FreeType处理的任何字体格式(任何 格式广泛使用除了WOFF2 )
SRC:http://weasyprint.readthedocs.io/en/latest/features.html#fonts
答案 1 :(得分:0)
如果CSS中有@font-face
条规则,则必须创建一个
FontConfiguration
对象:
fromweasyprintimport HTML, CSS
from weasyprint.fonts import FontConfiguration
font_config = FontConfiguration()
html = HTML(string='<h1>The title</h1>')
css = CSS(string='''
@font-face {
font-family: Gentium;
src: url(http://example.com/fonts/Gentium.otf);
}
h1 { font-family: Gentium }''', font_config=font_config)
html.write_pdf(
'/tmp/example.pdf', stylesheets=[stylesheet],
font_config=font_config)
https://weasyprint.readthedocs.io/en/stable/tutorial.html?highlight=FontConfiguration