как сохранить строку '\u2019','\u201c' и т. д. в исходной форме в pdf, используя pyfpdf в 'latin-1' или любом другом формате Unicode
Я пытаюсь создать простой файл PDF, используя приведенный ниже код, сохраненный в
html2Pdf.py
from fpdf import FPDF, HTMLMixin
import unicodedata
class HTML2PDF(FPDF, HTMLMixin):
pass
if __name__ == '__main__':
pdf = HTML2PDF()
# First page
pdf.add_page()
html="<p>'’'="\\u2019",'“'="\\u201c",'”'="\\u201d",'„'="\\u201e" sun's „ray“ “in” </p>"
pdf.write_html(html)
pdf.output('html.pdf', 'F')
при запуске этого кода для создания pdf я получаю эту ошибку
Traceback (most recent call last):
File "/path_to_code/html2Pdf.py", line 11, in <module>
pdf.output('html.pdf', "F")
File "/usr/local/lib/python3.7/site-packages/fpdf/fpdf.py", line 1065, in output
self.close()
File "/usr/local/lib/python3.7/site-packages/fpdf/fpdf.py", line 246, in close
self._enddoc()
File "/usr/local/lib/python3.7/site-packages/fpdf/fpdf.py", line 1636, in _enddoc
self._putpages()
File "/usr/local/lib/python3.7/site-packages/fpdf/fpdf.py", line 1170, in _putpages
p = self.pages[n].encode("latin1") if PY3K else self.pages[n]
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2019' in position 3929: ordinal not in range(256)
когда я пытался его кодировать.
b = html.encode('ascii', 'backslashreplace')
html = b.decode(encoding="utf-8", errors="strict")
вывод как
'\u2019'="\\u2019",'\u201c'="\\u201c",'\u201d'="\\u201d",'\u201e'="\\u201e" солнце \u2019s \u201eray\u201c \u201cin\u201d
И Pdf создается, и он работает, но исходная строка потеряна из-за encode
а также decode
метод
'' '= "\\ u2019",' "'="\\u201c",'”'="\\u201d",' "'=" \\ u201e "солнечный" луч "" в "
как сохранить эту строку в исходном виде