Pyfpdf Турецкий символ в Python
Я хочу создать PDF-файл в своем приложении Python, используя текст, содержащий турецкие символы, но получаю сообщение об ошибке. Мои коды ниже. Как я могу это исправить?
# -*- coding: utf-8 -*-
from fpdf import FPDF
import os
def add_image(image_path):
pdf = FPDF()
pdf.add_page()
epw = pdf.w - 2 * pdf.l_margin
pdf.set_font('Arial', 'B', 14.0)
txt = u'ATATÜRK LİSESİ 2019 2020 EĞİTİM ÖĞRETİM YILI 11C SINIFI'
stxt = txt.encode('iso-8859-9')
pdf.cell(epw, 0.0, stxt, align='C')
Я получаю сообщение об ошибке UnicodeEncodeError: кодек latin-1 не может закодировать символ '\u0130' в позиции 60: порядковый номер не в диапазоне (256)', если я использую приведенные ниже коды
epw = pdf.w - 2 * pdf.l_margin
pdf.set_font('Arial', 'B', 14.0)
txt = 'ATATÜRK LİSESİ 2019 2020 EĞİTİM ÖĞRETİM YILI 11C SINIFI'
#stxt = txt.encode('iso-8859-9')
pdf.cell(epw, 0.0, txt, align='C')
1 ответ
Решение
Я загрузил шрифт tr-arial.ttf в папку приложения и нашел такое решение:
epw = pdf.w - 2 * pdf.l_margin
txt = u'ATATÜRK LİSESİ 2019 2020 EĞİTİM ÖĞRETİM YILI 11C SINIFI'
pdf.add_font('tr-arial', '', 'tr-arial.ttf', uni=True)
pdf.set_font('tr-arial', '', 11)
pdf.cell(epw, 0.0, txt, align='C')