我需要将一个页面呈现为包含材质图标的PDF文件,但它似乎无法正常工作。
模板/ pdf.html
<html>
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<style>
* {
font-family: Roboto, Helvetica, sans-serif;
}
</style>
</head>
<body>
Just test
<i class="material-icons">remove_red_eye</i>
</body>
</html>
gen.py
import pdfkit
from django.template.loader import render_to_string
html = render_to_string('pdf.html')
pdfkit.from_string(html, 'out.pdf')
# I tried this version but it doesn't work either
# pdfkit.from_string(html, 'out.pdf', css=['https://fonts.googleapis.com/icon?family=Material+Icons'])
out.pdf
仅包含文字Just test
。有没有机会解决它?
我刚刚在pdfkit repo中创建了这个问题 - issue
答案 0 :(得分:1)
有两个问题需要解决,我以可接受的方式完成了这项工作。
CSS。
仅inline styles
有效。外部风格不起作用。
Wkhtmltopdf支持-webkit-
前缀,因此某些css属性需要添加前缀才能正常工作。
如果需要,下载外部css文件。在django模板中使用<style>{% include 'style.css' %}</style>
分隔出css文件。
图标字体和自定义字体不起作用。
一个。使用
{% include 'icon.svg' %}
包含字体图标湾仅支持svg xml中的
path
,fill
元素℃。你可以改变svg xml内容中svg的颜色和高度。
d。在Material Icon下载svgs
即你可以改用图标的颜色和大小来代替png。