Как экспортировать литовские буквы (ąčęėįšųūž) в PyFPDF? - PullRequest
0 голосов
/ 02 апреля 2019

Всякий раз, когда я пытаюсь сгенерировать PDF с какой-либо литовской буквой (įčęėųšųūž), я получаю «UnicodeEncodeError: кодек« latin-1 »не может кодировать символ« \ u0307 »в позиции ...». Попытался добавить шрифт TTF, обнаружив мой локальный файл Arial.ttf, который при использовании в любом другом приложении работает нормально, однако при использовании с PyFPDF он просто экспортирует пустой текст на место, где используются буквы. Есть ли способ экспортировать эти письма?

#!/usr/local/bin/python3

import fpdf

pdf = fpdf.FPDF()
pdf.add_page()
pdf.set_font("Arial", "B", 18)
pdf.set_xy(25, 25)
pdf.cell(w=160, h=10, align="C", txt="VAT Invoice")
pdf.set_font("Arial", "", 14)
pdf.cell(w=160, h=10, align="C", txt="SĄSKAITA ė")
pdf.output('./invoice.pdf', 'F')

1 Ответ

0 голосов
/ 02 апреля 2019

Похоже, это должно решить ваши проблемы: https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html

Загрузите шрифт, поддерживающий символы Unicode, и следуйте инструкциям на сайте выше. В приведенном ниже примере кода предполагается, что вы загрузили шрифт DejaVuSans (я получил его с здесь ).

import fpdf

pdf = fpdf.FPDF()
pdf.add_page()
pdf.add_font("DejaVu", "", "DejaVuSans.ttf", uni=True)
pdf.set_font("DejaVu", "", 14)
pdf.cell(w=160, h=10, align="C", txt="SĄSKAITA")
pdf.output('./invoice.pdf', 'F')
...