pdfkit использует разные шрифты при рендеринге PDF документа в OS X и Ubuntu
Я использую pdfkit для генерации PDF документа со страницы HTML. Проблема в том, что он использует разные шрифты на моей машине разработки (OS X) и производственном сервере (Ubuntu), поэтому я не могу получить согласованный рендеринг в среде разработки и производства.
Посмотрите на эти скриншоты:
PDF имеет разные шрифты, но когда я открываю HTML-версию в браузере, он отображается точно так же, когда размещается на сервере Ubuntu и OS X локально, и использует тот же шрифт, что и локально (OS X), сгенерированный 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 и как заставить его использовать нужный мне шрифт?
1 ответ
OSX использует Helvetica в качестве шрифта по умолчанию без засечек, а для Ubuntu по умолчанию используется DejaVu Sans. Я бы порекомендовал использовать тот, который является общим для сред.
Вы можете установить Helvetica на свой компьютер с Ubuntu, а затем изменить font-family: "Helvetica", sans-serif;
,
В идеале я хотел бы изучить шрифт, который доступен в обеих средах, а затем указать его в вызове семейства шрифтов.