Если кто-то в будущем попытается, как и я, выяснить, как СОБСТВЕННО создать файл PDF, содержащий иврит, используя xhtml2pdf, вот что сработало для меня:
Первое: включите настройки шрифтов, как описано здесь @eviltrue в моем HTML.Это может быть любой шрифт, если он поддерживает ивритские символы, иначе любые ивритские символы во входном HTML будут просто отображаться в виде черных прямоугольников в PDF.
Во время написания этого ответа, хотя можно выводить ивритские символы в PDF в формате xhtml2pdf, ивритские символы выводятся в обратном порядке, то есть שלום כיתה א
будет א התיכ םולש
.
На этом этапеЯ застрял, но потом наткнулся на этот вопрос: https://stackoverflow.com/a/15449145/1918837
После установки пакета python-bidi
, вот пример полного решения (используется в приложении Python):
from bidi import algorithm as bidialg
from xhtml2pdf import pisa
HTMLINPUT = """
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
@page {
size: a4;
margin: 1cm;
}
@font-face {
font-family: DejaVu;
src: url(my_fonts_dir/DejaVuSans.ttf);
}
html {
font-family: DejaVu;
font-size: 11pt;
}
</style>
</head>
<body>
<div>Something in English - משהו בעברית</div>
</body>
</html>
"""
pdf = pisa.CreatePDF(bidialg.get_display(HTMLINPUT, base_dir="L"), outpufile)
# I'm using base_dir="L" so that "< >" signs in HTML tags wouldn't be
flipped by the bidi algorithm
Приятной особенностью алгоритма двунаправленного текста является то, что вы можете смешивать языки RTL и LTR в одной строке (как в примере HTML выше) и при этом иметь правильно отформатированный результат.
РЕДАКТИРОВАТЬ : лучший способ сделать это сейчас - использовать wkhtmltopdf