-
المساهمات
14 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة كمال شلبي
-
-
بتاريخ 4 دقائق مضت قال Mahmoud Hassan19:
تمام المشكلة عندك انه لا يوجد font arabic متسجل علي جهازك ساسل لك الفونت مع الكود اللي عندي
تمام لكن لا زالت الأرقام بالانجليزي
-
بتاريخ 5 دقائق مضت قال Mahmoud Hassan19:
ممكن ترسل ملف المشروع
لا يوجد مشروع. فقط أردت تجربة البرنامج الذي أرسلته لي فظهرت لي الأخطاء التي أرسلتها لك
-
بتاريخ 18 ساعة قال Mahmoud Hassan19:
مرحبا
من الممكن استخدام مكتبة reportlab لإنشاء ملفات PDF بواسطة بايثون وتحويل جدول إلى مستند PDF ثبت المكتبة عن طريق ذاللك الامر
pip install reportlab
يمكن تحويل جدول الي pdf عن طريق استخدام هذه الكود
from reportlab.lib.pagesizes import letter from reportlab.lib import colors from reportlab.platypus import SimpleDocTemplate, Table, TableStyle # هنا بيانات الجدول data = [ ["كود المنتج", "اسم المنتج", "السعر", "الكمية"], ["001", "منتج 1", "50", "10"], ["002", "منتج 2", "30", "15"], ["003", "منتج 3", "20", "20"] ] # هنا انشاء اسم ال pdf pdf_filename = "جدول.pdf" document = SimpleDocTemplate(pdf_filename, pagesize=letter) #اعداد ال style الخاص بالجدول table = Table(data) table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('FONTNAME', (0, 0), (-1, 0), 'Arabic'), ('BOTTOMPADDING', (0, 0), (-1, 0), 12), ('BACKGROUND', (0, 1), (-1, -1), colors.beige), ('GRID', (0, 0), (-1, -1), 1, colors.black), ])) # اضافة الجدول الي مستند pdf document.build([table])
بالنسبة للارقام العربية من المككن استخدام مكتبة arabicreshaper, bidi عن طريق تثبيتهم
pip install arabic-reshaper pip install python-bidi
بعد ذاللك في اعدادات الجدول استخدم هذا الكود
from arabic_reshaper import reshape from bidi.algorithm import get_display reshaped_data = [[get_display(reshape(cell)) for cell in row] for row in data] # هنا لتحويل كل cell من الجدول والي االغة العربيى table = Table(reshaped_data)
اذن الكود ككل يحب ان يكون هكذا
from reportlab.lib.pagesizes import letter from reportlab.lib import colors from reportlab.platypus import SimpleDocTemplate, Table, TableStyle from arabic_reshaper import reshape from bidi.algorithm import get_display # بيانات الجدول data = [ ["كود المنتج", "اسم المنتج", "السعر", "الكمية"], ["001", "منتج 1", "50", "10"], ["002", "منتج 2", "30", "15"], ["003", "منتج 3", "20", "20"] ] # إعداد مستند PDF pdf_filename = "جدول.pdf" document = SimpleDocTemplate(pdf_filename, pagesize=letter) # تشكيل البيانات للعرض الصحيح للنصوص العربية reshaped_data = [[get_display(reshape(cell)) for cell in row] for row in data] # إعداد الجدول table = Table(reshaped_data) table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('FONTNAME', (0, 0), (-1, 0), 'Arabic'), ('BOTTOMPADDING', (0, 0), (-1, 0), 12), ('BACKGROUND', (0, 1), (-1, -1), colors.beige), ('GRID', (0, 0), (-1, -1), 1, colors.black), ])) # إضافة الجدول إلى المستند document.build([table])
بارك الله فيك وزادك علما وفضلابعد أن نسخت الكود الذي تكرمت بارساله ظهرت لي سلسلة الأخطاء التالية علما بأن المكتبات المطلوبة مثبة بواسطة الpip. ههلا أرشدتني إلى خطأي؟ وشكرا لكC:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\python.exe H:\sqlite\pdf5h.pyTraceback (most recent call last):File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\pdfbase\pdfmetrics.py", line 697, in getFontreturn _fonts[fontName]~~~~~~^^^^^^^^^^KeyError: 'Arabic'During handling of the above exception, another exception occurred:
Traceback (most recent call last):File "H:\sqlite\pdf5h.py", line 35, in <module>document.build([table])File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\doctemplate.py", line 1317, in buildBaseDocTemplate.build(self,flowables, canvasmaker=canvasmaker)File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\doctemplate.py", line 1082, in buildself.handle_flowable(flowables)File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\doctemplate.py", line 931, in handle_flowableif frame.add(f, canv, trySplit=self.allowSplitting):^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\frames.py", line 158, in _addw, h = flowable.wrap(aW, h)^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\tables.py", line 1346, in wrapself._calc(availWidth, availHeight)File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\tables.py", line 735, in _calcself._calc_width(availWidth,W=W)File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\tables.py", line 542, in _calc_widtht = self._elementWidth(v,s)^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\tables.py", line 608, in _elementWidthreturn max([stringWidth(x,fontName,fontSize) for x in v])^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\platypus\tables.py", line 608, in <listcomp>return max([stringWidth(x,fontName,fontSize) for x in v])^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\pdfbase\pdfmetrics.py", line 733, in stringWidthreturn getFont(fontName).stringWidth(text, fontSize, encoding=encoding)^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\pdfbase\pdfmetrics.py", line 699, in getFontreturn findFontAndRegister(fontName)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\pdfbase\pdfmetrics.py", line 681, in findFontAndRegisterface = getTypeFace(fontName)^^^^^^^^^^^^^^^^^^^^^File "C:\Users\k.shalabi\AppData\Local\Programs\Python\Python311\Lib\site-packages\reportlab\pdfbase\pdfmetrics.py", line 638, in getTypeFacereturn _typefaces[faceName]~~~~~~~~~~^^^^^^^^^^KeyError: 'Arabic'Process finished with exit code 1 -
1. كيف يمكنني إنشاء ملفات pdf بواسطة بايثون بحيث تكون على شكل جدول مثلا
كود المنتج اسم المنتج السعر الكمية
يوجد ملف مرفق فيه الخانات كبيرة جدا فأريد تصغيرها لحجم مناسب
2. أريد استخدام الأرقام العربية بدلا من الأرقام اللاتينية في العديد من البرامج. كيف ذلك؟
في الملف المرفق مثال.
وشكرا لكم
- 2
-
لا إجابة؟؟؟؟؟؟؟
-
ما في جواب؟
-
import tkinter as tk
def cb(event): label['text'] = str(event) + '\n' + str(lb.curselection())
root = tk.Tk()
var = tk.StringVar(value=dir(tk)) label = tk.Label(root) label.grid() lb = tk.Listbox(root, listvariable=var, selectmode='extended') lb.grid() lb.bind('<<ListboxSelect>>', cb) #print(lb.bind('<<ListboxSelect>>', cb))
x = lb.curselection()
print(x)
root.mainloop()
ما أريده بالضبط أنه من خلال الزر الأيسر للماوس عندما يختار المستخدم قيمة من القائمة listboxمثلا فهذه القيمة أريدها في متغير ثم أتصرف في هذا المتغير كما في المصال السابق والذي لم ينجح
-
بتاريخ 44 دقائق مضت قال Kais Hasan:
من أجل ال listbox يمكنك الحصول على العناصر المحددة على شكل tuple باستعمال التابع curselection()، و الذي يعيد أرقام الأسطر التي تم اختيارها، من ثم يمكنك استعمال رقم السطر لمعرفة القيمة (حيث يجب أن يكون لديك ما يحويه ال listbox).
من أجل ال comboBox يمكنك الحصول على القيمة الحالية باستعمال الدالة get.
ممكن مثال بسيط؟
أنا جديد في البايثون وبتعلم من خلال النت ودراسة أكواد جاهزة وأبني عليها
بتاريخ 22 ساعة قال عمر قره محمد:بحسب التوثيق الرسمي يمكنك الوصول إلى العنصر كالتالي :
comboBox1.Items[i].ToString()
حيث ان الـ i هو الـ index الخاص بالعنصر،
والـ comboBox1 هو الـ comboBox الخاص بك.
يمكنك الاطلاع على التوثيق الرسمي من هنا
ليست للبايثون
- 1
-
لغة بايثون 3. ومكنبة tkinter
-
كيف يمكنني معرفة قيمة عنصر من listbox او combobox عندما يختار المستعمل هذا العنصر. أريد استعمال هذه القيمة في عمليات حسابية مثلا إو إدخالها على جدول في قاعدة البيانات...الخ
لا أريد استعمال دوال functions بل الاستعمال المباشر مثل x=listbox.item أو ماشابه
جدول بي دي إف
في بايثون
نشر
السلام عليكم
أحاول أن أعمل جدول باللغة العربية ولكن الداتا garbage كما أن الأرقام لا تظهر بالعربي بل بالانجليزية.
مرفق الجدول والبرنامج
جدول.pdf tables.py