Арабские слова отображаются неправильно в FPDFPython

Программы на Python
Ответить
Anonymous
 Арабские слова отображаются неправильно в FPDF

Сообщение Anonymous »

Я пытаюсь создать PDF-файл, содержащий параграф на арабском языке, с помощью библиотеки FPDF. Слова на арабском языке отображаются неправильно, они должны быть справа налево, но они отображаются слева направо, как и в английском языке.
Я попробовал загрузить шрифт, поддерживающий арабские буквы, и закодировать файл .txt, декодировать его обратно для записи в PDF с использованием UTF-8.
После запуска кода переменная txt с кодированием ='utf-8' содержит слова правильно, как они появляются в .txt-файл. В PDF-файле слова отображаются неправильно. Таким образом, проблема заключается в создании PDF-файла.

Код: Выделить всё

pdf = fpdf.FPDF(format='letter')

# Read text file
name = 'mqal.txt'
with open(name, 'r', encoding="utf-8") as f:
txt = f.read()

pdf.add_page()
# freeserif because it support arabic letters
pdf.add_font('FreeSerif', '', 'FreeSerif.ttf', uni=True)
pdf.set_font('FreeSerif', '', 12)
pdf.multi_cell(0, 5, txt,0,'R')
pdf.ln()

pdf.cell(0, 5, 'End')
pdf.output("mqal8.pdf")
Вывод, как он отображается в PDF-файле:

Малаат Нодо, Адхам Таавтах, О Дааук, О Аббат, На Нод Лакма, Паткб, Адабт На, Да, конечно, вы можете начать писать статью, не следя за ней. Никаких конкретных правил или шагов, и без изучения основ написания статьи все, что вам нужно сделать, это сесть перед компьютером, начать выдавливать свои идеи и преобразовывать их непосредственно в письменный текст. Часто результат будет больше похож на написанную речь. Это, конечно, если вы не являетесь экспертом в написании статей.

Как я могу создать арабский текст, правильно отображаемый справа налево, в PDF-файле с помощью FPDF?

Подробнее здесь: https://stackoverflow.com/questions/588 ... ly-in-fpdf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»