用西里尔字母问题从html生成pdf文件

时间:2019-05-16 01:37:37

标签: python xhtml2pdf

我尝试使用西里尔字母“俄语”从html生成pdf文件,但始终会出现黑框,我使用的是xhtml2pdf,请帮助我

f = open('print.html', 'w')
htmlcode = "<!DOCTYPE html>" \
           "<html>" \
           "<head>" \
           '<style type="text/css">' \
           '@page { size: A4; margin: 1cm; }' \
           '@font-face { font-family: MAC C Times; src: url("C:\Windows\Fonts\MCTIME.TTF"); }' \
           'p { color: red; font-family: MAC C Times; }'\
           'body {font-family: MAC C Times;}'\
           '</style>' \
           "<title>Результат крови</title>" \
           "</head>" \
           "<body>" \
           '<meta content="text/html; charset=utf-8" http-equiv="Content-Type">' \
           "<p><b>Результат крови</p></b>" \
           "<p>название:" + str(v[1]) + "</p>" \
           "<p>Фамилия:" + str(v[2]) + "</p>" \
           "<p>Пол:" + str(v[4]) + "</p>" \
           "<p>Возраст:" + str(v[3]) + "</p>" \
           "<p>Врач:" + str(v[5]) + "</p>" \
           "<p>Количество клеток:" + str(cells_count) + "</p>" \
           "<p>средний размер ячейки:" + str(a) + "</p>" \
           "<p>Лейкоциты:" + str(a) + "</p>" \
           "<p>Эритроциты:" + str(b) + "</p>" \
           "<p>Тромбоциты:" + str(c) + "</p>" \
           "<p>гематокрит:" + str(d) + "</p>" \
           "<p>характеристики:" + str(e) + "</p>" \
           "</body>" \
           "</html>"

resultFile = open("print.pdf", "w+b")
pisa.CreatePDF(htmlcode, dest=resultFile, encoding='utf-8')
resultFile.close()
os.startfile("print.pdf")

1 个答案:

答案 0 :(得分:0)

您可以尝试使用io.open("print.pdf", 'w', encoding="utf8")而不是内置的open()来读写文件。