我使用pdfkit从HTML页面生成PDF文档。问题是它在我的开发机器(OS )和生产服务器(Ubuntu)上使用不同的字体,所以我无法在开发和生产环境中得到一致的呈现。
看一看这些截图:
在Ubuntu上生成的PDF:
在OS上生成的PDF:
HTML版本
PDF有不同的字体,但是当我在浏览器中打开HTML版本时,它在Ubuntu服务器和OS本地托管时呈现完全相同的字体,并且使用与本地(OS )生成的PDF相同的字体。
下面是我用来生成HTML和PDF版本的代码(这是Django)。
t = loader.get_template(self.template_name)
c = RequestContext(request, context)
html = t.render(c)
if format == "html":
return HttpResponse(html, content_type="text/html")
elif format == "pdf":
options = {
'quiet': ''
}
pdf = pdfkit.from_string(smart_unicode(html), False, options=options)
response = HttpResponse(pdf, content_type='application/pdf')
response['Content-Disposition'] = '{0}; filename=Order Sheet.pdf'\
.format(self.get_disposition())
return response
else:
return HttpResponse("Unknown format", content_type="text/html")
这是CSS字体定义。
body {
font-family: sans-serif;
font-size: 13px;
font-weight: normal;
}
我也试过Arial
。
为什么pdfkit (wkhtmltopdf)在Ubuntu上使用不同的字体,以及如何强制它使用我想要的字体?
发布于 2015-11-30 05:05:03
OSX使用Helvetica作为默认的sans-serif字体,Ubuntu的默认字体是DejaVu Sans。我建议使用环境之间常见的一种。
您可以将Helvetica安装到您的Ubuntu机器上,然后修改font-family: "Helvetica", sans-serif;
。
理想情况下,我将探索一种可以在这两个环境中访问的字体,然后在您的字体家族调用中指定它。
https://stackoverflow.com/questions/33998140
复制相似问题