как сохранить строку '\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 "солнечный" луч "" в "

как сохранить эту строку в исходном виде

0 ответов

Другие вопросы по тегам