pdf / TEMPLATE_USAGE_GUIDE.md
fokan's picture
Upload 35 files
86fce4f verified
# دليل استخدام نظام تحويل 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` مع المواصفات المحددة. للملفات الأخرى، قد تحتاج إلى تعديل إعدادات أحجام الخطوط.