| # دليل استخدام نظام تحويل 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. التحضير | |
| ```bash | |
| # تأكد من وجود خط Arial | |
| ls fonts/arial.ttf | |
| # تأكد من وجود ملف template.docx | |
| ls template.docx | |
| ``` | |
| ### 2. تشغيل الاختبارات | |
| ```bash | |
| python test_template_conversion.py | |
| ``` | |
| ### 3. تشغيل التطبيق | |
| ```bash | |
| python app.py | |
| ``` | |
| ### 4. رفع الملف | |
| - افتح واجهة Gradio | |
| - ارفع ملف `template.docx` | |
| - انتظر التحويل | |
| - حمل ملف PDF الناتج | |
| ## 🔧 التكوين التقني | |
| ### إعدادات الخطوط | |
| ```xml | |
| <!-- في fontconfig --> | |
| <alias> | |
| <family>Arial</family> | |
| <prefer> | |
| <family>Arial</family> | |
| <family>Liberation Sans</family> | |
| </prefer> | |
| </alias> | |
| ``` | |
| ### إعدادات LibreOffice | |
| ```xml | |
| <!-- الخطوط الافتراضية --> | |
| <prop oor:name="Standard"> | |
| <value>Arial;Liberation Sans;DejaVu Sans</value> | |
| </prop> | |
| ``` | |
| ### معالجة أحجام الخطوط | |
| ```python | |
| # حجم 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 عالية | |
| ### التحقق من النتائج | |
| ```python | |
| # فحص الخط المستخدم | |
| fc-list | grep Arial | |
| # فحص ملف PDF | |
| python -c " | |
| import fitz | |
| doc = fitz.open('output.pdf') | |
| for page in doc: | |
| text_dict = page.get_text('dict') | |
| # فحص أحجام الخطوط | |
| " | |
| ``` | |
| ## 🐛 استكشاف الأخطاء | |
| ### مشاكل شائعة | |
| 1. **خط Arial غير موجود** | |
| ```bash | |
| # تأكد من وجود الملف | |
| ls -la fonts/arial.ttf | |
| ``` | |
| 2. **أحجام خطوط خاطئة** | |
| ```python | |
| # فحص تحليل الخطوط | |
| from app import analyze_template_font_sizes | |
| mapping = analyze_template_font_sizes('template.docx') | |
| print(mapping) | |
| ``` | |
| 3. **فشل التحويل** | |
| ```bash | |
| # فحص LibreOffice | |
| libreoffice --version | |
| # فحص الخطوط المتاحة | |
| fc-list | grep -i arial | |
| ``` | |
| ## 📈 تحسينات مستقبلية | |
| - [ ] دعم خطوط إضافية | |
| - [ ] واجهة لتخصيص أحجام الخطوط | |
| - [ ] معاينة مباشرة للتغييرات | |
| - [ ] تصدير إعدادات الخطوط | |
| ## 📞 الدعم | |
| للحصول على المساعدة: | |
| 1. تشغيل ملف الاختبار أولاً | |
| 2. فحص رسائل الخطأ | |
| 3. التأكد من وجود جميع الملفات المطلوبة | |
| 4. مراجعة هذا الدليل | |
| --- | |
| **ملاحظة**: هذا النظام مصمم خصيصاً لملف `template.docx` مع المواصفات المحددة. للملفات الأخرى، قد تحتاج إلى تعديل إعدادات أحجام الخطوط. | |