Bonjour tout le monde,
je suis sur python 3.9.6, et j'utilise reportlab pour écriture des fichier pdf, pour la langue française ça marche trés bien, mais j'arrive pas à le faire pour la langue arabe
voici le fragment du code que j'utilise :
la police de caractère Arabic.ttf est celle de alfont_com_IBMPlexSansArabic-Regular.ttf que j'ai téléchargé et renommer en Arabic.ttf et coller dans le dossier font de reportlab.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 from reportlab.pdfgen import canvas from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont import reportlab import os reportlab_directory=os.path.dirname(reportlab.__file__) font_folder=os.path.join(reportlab_directory,"fonts") custom_font_folder=os.path.join(font_folder,'Arabic.ttf') custom_font=TTFont("arabic-custom",custom_font_folder) pdfmetrics.registerFont(custom_font) pdffile1=canvas.Canvas("font_arabic.pdf") pdffile1.setFont('arabic-custom',20) pdffile1.drawString(120,10," السلام عليكم") pdffile1.save()
le résultat à l'exécution du code est un fichier pdf avec le texte suivant : م ك ي ل ع م ال س ل ا
les lettres sont détachée les uns des autres et le sens du texte est du gauche a droite au lieu de droite a gauche.
Merci d'avance pour votre aides.
Partager