اذهب إلى المحتوى
  • 1

مشكلة في كتابة اللغة العربية داخل ملف PDF باستخدام البايثون

Badr Heb

السؤال

مرحبا 

لما اكتب كود ب لغة البايثون على اساس يكتب داخل ملف pdf  ينكتب ب شكل مقطع و الجمله هي "السلام عليكم" 

الكود

p_26873v97e1.png

ملف pdf المعدل عليه

 

p_2687irfl71.png

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 2

جرب تصحيح النص قبل إضافته بالطريقة التالية :

import arabic_reshaper
from bidi.algorithm import get_display

text = "ذهب الطالب الى المدرسة"
reshaped_text = arabic_reshaper.reshape(text)
bidi_text = get_display(reshaped_text)

print(bidi_text)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 2

تحقق من  التالي وأخبرني بالنتيجة:

1- تحتاج إلى التأكد من وجود الخط العربي (arb.ttf) في نفس المجلد الذي يحتوي على الكود الخاص بك. تحقق من صحة اسم الملف ومكانه.

2- أنت تستخدم حزمة arabic_reshaper لإعادة تشكيل النص العربي، لذلك تأكد من تثبيت الحزمة بشكل صحيح باستخدام أداة إدارة الحزم pip.

وسبب الخطأ الذي يظهر لك هو أنه يوجد مشكلة في القيم المستخدمة لتعيين الخريطة الحرفية (cmap) في ملف الخط العربي الذي تستخدمه (arb.ttf).

وتلك الأخطاء تحدث عندما يكون ملف الخط غير صحيح أو غير متوافق مع مكتبة FPDF، لذلك تأكد من التالي:

1- ملف الخط العربي (arb.ttf) الذي تستخدمه هو ملف صالح وغير تالف، وقد تحتاج إلى تحميل ملف خط عربي آخر وتجربته للتأكد من أنه ليس المشكلة.

2- تحديث مكتبة FPDF إلى أحدث إصدار متاح مما قد يصلح بعض الأخطاء وتحسين التوافق مع ملفات الخط عبر التحديثات.

3- التحقق من أن جميع الاعتماديات اللازمة مثبتة بشكل صحيح، بما في ذلك bidi.algorithm و arabic_reshaper.

استخدم الأمر التالي لتثبيت الحزم:

pip install python-bidi
pip install arabic-reshaper

في حالة استمرار المشكلة، حاول استخدام خطوط أخرى تتوافق بشكل أفضل مع مكتبة FPDF لدعم الكتابة العربية، مثل خطوط Amiri و Lateef و Droid Arabic Kufi وغيرها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
from fpdf import FPDF
import bidi.algorithm
from arabic_reshaper import reshape

def add_pdf():
    ft = FPDF()
    txt = u"السلام عليكم"
    ar_txt = reshape(txt)
    bd_txt = bidi.algorithm.get_display(ar_txt)
    ft.add_page()
    ft.add_font("arb",'','arb.ttf',uni=True)
    ft.set_font("arb",size=30)
    ft.write(8,bd_txt)
    ft.output("ft.pdf")
add_pdf()

جربت سابقا وظهرت لي المشكله هذي

PS C:\Users\expert\Desktop\python> & c:/Users/expert/Desktop/python/env/Scripts/python.exe c:/Users/expert/Desktop/python/test_pdf.py
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65163
  warnings.warn("cmap value too big/small: %s" % cm)
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65201
  warnings.warn("cmap value too big/small: %s" % cm)
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65223
  warnings.warn("cmap value too big/small: %s" % cm)
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65239
  warnings.warn("cmap value too big/small: %s" % cm)
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65241
  warnings.warn("cmap value too big/small: %s" % cm)
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65257
  warnings.warn("cmap value too big/small: %s" % cm)
C:\Users\expert\Desktop\python\env\Lib\site-packages\fpdf\ttfonts.py:670: UserWarning: cmap value too 
big/small: -65266
  warnings.warn("cmap value too big/small: %s" % cm)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

جربت الطريقة وضبطت معي، إستخدمت خط الجزيرة (https://arbfonts.com/aljazeera-font-download.html).

from fpdf import FPDF
import arabic_reshaper
from bidi.algorithm import get_display

pdf = FPDF('P', 'mm', 'A4')

pdf.add_page()
pdf.add_font('Jazeera', '', '4_F1.ttf')
pdf.set_font('Jazeera', '', 16)
text = "ذهب الطالب الى المدرسة"
reshaped_text = arabic_reshaper.reshape(text)
bidi_text = get_display(reshaped_text)
pdf.cell(80,10, bidi_text)

pdf.output('output.pdf')

 

Screenshot (488).png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...