我正在使用我用 Flask 构建的网站从用户那里获取数据(阿拉伯文文本)并使用 FPDF 生成 PDF 文件,并使用 PyPDF2 将其与现有 PDF 背景作为模板合并,我还使用
from bidi.algorithm import get_display import
和 arabic_reshaper
修复阿拉伯字母。
我从
<textarea>
收到一条文本并将其发送到我的write_to_pdf()
,它确实支持多行,一切都很顺利,除了文本是从下写的
示例:
这是我的输入:
ك已ط。研究
输出:
def write_to_file(fields):
PDF = FPDF(format="A4")
fields: list[dict]
with open(f"{BASE_PATH}/pdf_templates/school_template.pdf", "rb"):
PDF.add_page()
for field in fields:
set_color(PDF, field["color"])
set_font(PDF, field["font"], field["font_size"])
PDF.set_xy(field["coordinates"]["x"], field["coordinates"]["y"])
fixed_arabic_text = fix_arabic_text(field["text"])
if field["resize_to_fit"] == True:
resize_to_fit(PDF, fixed_arabic_text, max_size=field["max_size"])
PDF.multi_cell(field["width"], field["hieght"], align=field["align"],
txt=fixed_arabic_text, border=field["border"], )
编辑:反转文本有效,但现在它写的是 LTR,我需要 RTL :D 你找到解决办法了吗? 还是还没有?