دليل استخدام نظام تحويل template.docx مع خط Arial المحلي
🎯 نظرة عامة
تم تطوير نظام متقدم لتحويل ملف template.docx إلى PDF مع الحفاظ على أحجام الخطوط المحددة واستخدام خط Arial من مجلد fonts المحلي.
📁 هيكل المشروع
pdf/
├── fonts/
│ └── arial.ttf # خط Arial المحلي
├── template.docx # الملف المراد تحويله
├── app.py # التطبيق الرئيسي
├── test_template_conversion.py # ملف الاختبار
└── TEMPLATE_USAGE_GUIDE.md # هذا الدليل
🔤 أحجام الخطوط المحددة
حجم 12 نقطة:
{{serial_number}}- الرقم التسلسلي{{t_11}}- المتغير t_11{{t_}}- المتغير t_{{date}}- التاريخ- النصوص: "الرقم التسلسلي"، "الساعة"، "التاريخ"
حجم 13 نقطة:
{{name_1}},{{name_2}},{{name_3}}- الأسماء{{id_1}},{{id_2}}- أرقام الهوية{{location_1}},{{location_2}},{{location_3}}- المواقع{{phone_1}},{{phone_2}}- أرقام الهاتف- النصوص: "اسم المالك الشرعي"، "الطرف الاول"، "البائع"، "رقم الهوية"، "الطرف الثاني"، "المشتري"، "يسكن"، "رقم الهاتف"
حجم 14 نقطة:
- النصوص: "الطرف البائع"، "الطرف المشتري"
حجم 12 نقطة (افتراضي):
- جميع النصوص الأخرى في الملف
⚙️ الميزات الجديدة
1. استخدام خط Arial المحلي
- يتم تحميل خط Arial من مجلد
fonts/arial.ttf - يتم تثبيته في النظام تلقائياً
- يحصل على أولوية عالية في تكوين الخطوط
2. تحليل أحجام الخطوط
- تحليل تلقائي لملف template.docx
- استخراج أحجام الخطوط لكل نص
- تطبيق الأحجام المحددة حسب المحتوى
3. معالجة مسبقة متقدمة
- تطبيق خط Arial على جميع النصوص
- تعديل أحجام الخطوط حسب المواصفات
- حفظ التنسيق الأصلي
🚀 كيفية الاستخدام
1. التحضير
# تأكد من وجود خط Arial
ls fonts/arial.ttf
# تأكد من وجود ملف template.docx
ls template.docx
2. تشغيل الاختبارات
python test_template_conversion.py
3. تشغيل التطبيق
python app.py
4. رفع الملف
- افتح واجهة Gradio
- ارفع ملف
template.docx - انتظر التحويل
- حمل ملف PDF الناتج
🔧 التكوين التقني
إعدادات الخطوط
<!-- في fontconfig -->
<alias>
<family>Arial</family>
<prefer>
<family>Arial</family>
<family>Liberation Sans</family>
</prefer>
</alias>
إعدادات LibreOffice
<!-- الخطوط الافتراضية -->
<prop oor:name="Standard">
<value>Arial;Liberation Sans;DejaVu Sans</value>
</prop>
معالجة أحجام الخطوط
# حجم 12 (24 نصف نقطة)
doc_content = re.sub(
r'(<w:r[^>]*>.*?' + pattern + r'.*?<w:sz w:val=")[^"]*(")',
r'\g<1>24\g<2>',
doc_content
)
📊 مراقبة الجودة
مؤشرات النجاح
- ✅ تثبيت خط Arial المحلي
- ✅ تحليل أحجام الخطوط
- ✅ تطبيق الأحجام المحددة
- ✅ حفظ التنسيق الأصلي
- ✅ جودة PDF عالية
التحقق من النتائج
# فحص الخط المستخدم
fc-list | grep Arial
# فحص ملف PDF
python -c "
import fitz
doc = fitz.open('output.pdf')
for page in doc:
text_dict = page.get_text('dict')
# فحص أحجام الخطوط
"
🐛 استكشاف الأخطاء
مشاكل شائعة
خط Arial غير موجود
# تأكد من وجود الملف ls -la fonts/arial.ttfأحجام خطوط خاطئة
# فحص تحليل الخطوط from app import analyze_template_font_sizes mapping = analyze_template_font_sizes('template.docx') print(mapping)فشل التحويل
# فحص LibreOffice libreoffice --version # فحص الخطوط المتاحة fc-list | grep -i arial
📈 تحسينات مستقبلية
- دعم خطوط إضافية
- واجهة لتخصيص أحجام الخطوط
- معاينة مباشرة للتغييرات
- تصدير إعدادات الخطوط
📞 الدعم
للحصول على المساعدة:
- تشغيل ملف الاختبار أولاً
- فحص رسائل الخطأ
- التأكد من وجود جميع الملفات المطلوبة
- مراجعة هذا الدليل
ملاحظة: هذا النظام مصمم خصيصاً لملف template.docx مع المواصفات المحددة. للملفات الأخرى، قد تحتاج إلى تعديل إعدادات أحجام الخطوط.