تفاصيل البوست
حل مشكلة اللغة العربية في ملفات ال PDF
من أكثر المشاكل إحباطاً ومواجهةً للمطور العربي عند بناء أنظمة تقارير أو برمجيات إدارية (مثل تقارير العيادات، المخازن، أو المراكز التعليمية) هي مشكلة توليد ملفات PDF تدعم اللغة العربية بشكل صحيح.
إذا كنت تستخدم مكتبات شهيرة مثل ReportLab في بايثون أو غيرها، ستتفاجأ غالباً بأن النص العربي يظهر مقلوباً، أو تظهر الحروف متقطعة وغير متصلة (مثل: م د و ن ة ب د لًا من مدونة)، بالإضافة إلى انهيار اتجاه الواجهة من اليمين إلى اليسار (RTL).
لماذا تحدث هذه المشكلة برمجياً؟ ملفات الـ PDF بطبيعتها تعتمد على معايير غربية ترسم الحروف من اليسار إلى اليمين كرموز منفصلة، ولا تفهم آلياً خاصية "التشبيك" وتغيير شكل الحرف العربي حسب موقعه في الكلمة (أول، وسط، أو آخر الكلمة).
خطوات الحل الجذري والنهائي:
لحل هذه المشكلة في بيئة Python بنجاح، يجب دمج مكتبتين أساسيتين مع مكتبة توليد الـ PDF:
مكتبة arabic-reshaper: وظيفتها إعادة تشكيل وتوصيل الحروف ببعضها برمجياً لتبدو الكلمة متصلة وصحيحة.
مكتبة python-bidi: وظيفتها قلب اتجاه النص البرمجي بالكامل ليصبح من اليمين إلى اليسار (Right-to-Left) بشكل سليم.
مثال لكود مبسط 👇
from arabic_reshaper import reshape from bidi.algorithm import get_display def fix_arabic_text(text): if not text: return "" # 1. إعادة تشكيل الحروف العربية لتصبح متصلة reshaped_text = reshape(text) # 2. تعديل اتجاه النص من اليمين إلى اليسار bidi_text = get_display(reshaped_text) return bidi_text
مثال للاستخدام داخل تقارير PDF:
title_for_pdf = fix_arabic_text("تقرير مبيعات المركز التعليمي") 💡 ملاحظة هامة جداً لنجاح التقرير: تأكد دائماً من تحميل وتسجيل خط عربي خارجي يدعم الـ Unicode (مثل خط Amiri أو Cairo بصيغة .ttf) داخل مكتبة الـ PDF الخاصة بك، ولا تعتمد على الخطوط الافتراضية للسيرفر.
بتطبيق هذا التكنيك البرمجي، ستتمكن من استخراج فواتير، تقارير مالية، وشهادات بصيغة PDF باللغة العربية النظيفة والمحترفة بنسبة 100% ودون أي عيوب في التنسيق! 🛠️
جاري تحميل التعليقات...