أمثلة ومراجع

طباعة التقارير على ترويسة الجهة

كل تطبيق يطبع شيئاً يصطدم بالجدار نفسه: تشكيل العربية، واتجاه RTL، وخطٌّ يرسمها، والهوامش، وترويسةٌ تعرف المدرسة أنها ترويستها. وحين يُحلّ في كل تطبيق على حدة يُحلّ في كل تطبيق على نحو مختلف — فتنتهي المدرسة بستّ وثائق بستّ تخطيطات، لا واحدة منها ترويستها، والشيء الوحيد الذي أرادته (أن هذه صادرة عن مدرستها) هو الذي لا تملكه أيٌّ منها.

المحرّك يعرف ذلك كلّه، لأن المدرسة ضبطته مرّة واحدة في «منشئ التقارير».

تقسيم العمل

القالب إطار، والمدرسة تملكه: الشعار، الترويسة، التذييل، العلامة المائية، الهوامش، حجم الورق، الاتجاه.

والمتن لك، تمرّره أنت. القالب لا يحمل محتوى من عنده.

كيف تستخدمه

use App\Services\PartnerApi\Reports\Templates\ListReportTemplates;
use App\Services\PartnerApi\Reports\Templates\RenderReportTemplate;

// 1) اعرض ترويسات الجهة ليختار المستخدم واحدة
$templates = app(ListReportTemplates::class)();
// [ ['id' => 'aBc12', 'name_ar' => 'ترويسة المدرسة', 'paper_size' => 'a4', …], … ]

// 2) اطبع محتواك عليها
$pdf = app(RenderReportTemplate::class)($templates[0]->id, [
    ['type' => 'heading',  'text' => 'كشف الدرجات', 'level' => 'h1'],
    ['type' => 'info-row', 'label' => 'الطالب', 'value' => 'أحمد صالح'],
    ['type' => 'table',
     'headers' => ['المادة', 'الدرجة'],
     'rows'    => [['الرياضيات', '95'], ['العلوم', '88']]],
    ['type' => 'divider'],
    ['type' => 'text', 'html' => '<p>صدر آلياً من نظام المدرسة.</p>'],
]);

// $pdf = ['filename' => 'report-aBc12-20260901-101500.pdf',
//         'mime' => 'application/pdf', 'bytes' => '%PDF…']

أنواع الكتل

heading (مع level: h1/h2/h3 وtext) · text (مع html) · info-row (مع label وvalue) · table (مع headers وrows) · divider · spacer · image

نوعٌ لا يعرفه المحرّك يُرفض ولا يُتجاوَز. إسقاط كتلة بصمت يُنتج وثيقةً ناقصةً قسماً لا تقول شيئاً عن نقصه، وتقريرٌ ينقصه صفّ أسوأ من تقرير لم يُطبع.

النطاق

reports.builder.read — لا شيء هنا يكتب. الطباعة على ترويسة أحدهم فعلٌ غير إعادة تصميمها، ولا تطبيق يفعل الثانية: لا إنشاء قالب ولا تعديله ولا حذفه.

تعود بايتات، لا رابطاً

الملف المخزَّن يحتاج عمراً وسياسة تنظيف وقاعدة وصول، لوثيقةٍ قد تحمل درجات طفلٍ باسمه. إعادة البايتات تترك الثلاثة عند التطبيق الذي طلبها.


عرض الدليل كاملاً في صفحة واحدة · ↧ Markdown خام