我在尝试从 HTML 呈现 pdf 时尝试使用自定义字体。
我已经在 HTML 中试过了,字体显示出来了,所以字体的路径必须是正确的,而且它可能被正确使用了。字体类型为 .ttf,根据 http://xhtml2pdf-base.googlecode.com/hg/doc/xhtml2pdf-en.html 上的文档,它应该呈现,但它没有呈现。
这是我的样式标签中的内容:
@font-face {
font-family: "Swiss";
src: url("/static/font/swiss.ttf");
}
body {
font-family: "Swiss";
font-size: 12px;
}
和 html:
<body>
asdf
</body>
我已经尝试了很多东西,去掉了字体 url 和字体系列的引号,我的正文被包裹在 HTML 标签中,所以 html 的格式正确。在网页中呈现时一切都很好,但在转换为 PDF 时无法正确呈现。谁能帮我找出错误?
最佳答案
最好的方法是使用回调来使用文件系统路径获取字体。更准确,而且您不会为每个资源(资源含义、字体、图像等)访问网络服务器
pisa.CreatePDF(html.encode("UTF-8"), file_object , encoding='UTF-8',
link_callback=fetch_resources)
def fetch_resources(uri, rel):
find_file_in_path_using_uri
return path
顺便说一下,我认为你的问题是你还没有完成 collect static,所以字体实际上并不在/static/font/swiss.ttf。我的意思是它们不在 django 之外,而 xhtml2pdf 在 django 之外。我不是 100% 确定。
关于html - @font-face 自定义字体无法使用 xhtml2pdf for django 正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14489223/