Files
TX/attached_assets/Pasted--PDF-PDF--1777885005658_1777885005659.txt
T
riyadhafraa 771cfb5611 Improve PDF generation for meeting tables with better text handling
Update PDF rendering logic to correctly handle bidirectional text, cell merging, and text wrapping for meeting tables.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 36ae937b-a1fc-4edb-8901-b07ed7713220
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/Zh9QhRk
Replit-Helium-Checkpoint-Created: true
2026-05-04 09:24:37 +00:00

151 lines
4.2 KiB
Plaintext

أريد إصلاح تصدير PDF لجدول الاجتماعات بشكل نهائي.
⚠️ مهم:
التصميم الخارجي للـPDF ثابت (العنوان + الفوتر + حجم الصفحة + الخط DIN Next LT Arabic).
التعديل فقط داخل الجدول.
==================================
أولاً: إصلاح المشاكل الحالية
==================================
1. لا يوجد أي فراغات بين الصفوف:
- لا padding عمودي
- لا margin
- ارتفاع الصف = حجم المحتوى فقط
2. كل اجتماع يجب أن يكون صف واحد:
- الرقم + اسم الاجتماع + الحضور + الوقت في نفس الصف
- لا يظهر الوقت في صف منفصل أبداً
3. إصلاح الترقيم:
- لا يبدأ من 4 أو رقم خاطئ
- استخدم رقم الاجتماع الحقيقي من البيانات
4. إصلاح ترتيب الحضور:
- لا يظهر بشكل مقلوب مثل:
-5 سالم -4 علي
- الترتيب يكون:
1- محمد 2- علي 3- طارق
5. الدمج:
- أي merge في النظام (rowSpan / colSpan) يجب أن يظهر نفسه في PDF
- لا تعيد بناء الجدول بدون الدمج
==================================
ثانياً: تنسيق الحضور
==================================
- الحضور في نفس السطر (inline)
- كل سطر يحتوي 3 إلى 4 أسماء تقريباً
- إذا زاد العدد → ينزل سطر جديد تلقائياً
- لا تجعل كل اسم في سطر مستقل
مثال:
1- محمد 2- علي 3- طارق
4- سالم 5- عبدالله
==================================
ثالثاً: محاذاة المحتوى
==================================
- عمود "الاجتماع" في المنتصف (center)
- عمود "الحضور" في المنتصف
- عمود "الوقت" في المنتصف
- vertical-align: middle
==================================
رابعاً: عكس تنسيق المستخدم (مهم جداً)
==================================
داخل الجدول فقط:
- Bold → يظهر Bold في PDF
- Center / Right / Left → يظهر نفس المحاذاة
- لون الخط → يظهر نفسه
- لون الخلفية → يظهر نفسه
- حجم الخط → يظهر نفسه
⚠️ لا تجعل CSS العام يلغي تنسيقات الخلايا
الحل:
- استخدم inline style لكل خلية
- مثال:
<td
rowspan="..."
colspan="..."
style="
font-weight: bold;
text-align: center;
color: #000;
background-color: #f2f2f2;
font-size: 13px;
vertical-align: middle;
"
>
المحتوى
</td>
==================================
خامساً: CSS المطلوب
==================================
@media print {
table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
border-spacing: 0;
}
th, td {
padding: 0 4px !important;
margin: 0 !important;
line-height: 1.05 !important;
vertical-align: middle !important;
text-align: center;
}
.attendees-inline {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: 0 10px;
direction: rtl;
}
.attendee-item {
white-space: nowrap;
unicode-bidi: isolate;
}
.time-cell {
direction: ltr;
white-space: nowrap;
text-align: center;
}
}
==================================
سادساً: شرط مهم جداً
==================================
لا تبنِ PDF من DOM مكسور.
- استخدم نفس بيانات الجدول في النظام
- طبّق rowSpan و colSpan كما هي
- كل صف في PDF = صف حقيقي في النظام
==================================
النتيجة المطلوبة:
==================================
PDF مطابق للنظام من حيث:
- بدون فراغات
- الحضور inline
- الترقيم صحيح
- الدمج صحيح
- الوقت داخل الصف
- المحاذاة في المنتصف
- جميع التنسيقات (Bold / Color / Alignment) تنعكس