"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إنشاء مستندات PDF في Laravel

إنشاء مستندات PDF في Laravel

تم النشر بتاريخ 2024-08-16
تصفح:569

Generating PDF documents in Laravel

Laravel وDomPDF: دليل خطوة بخطوة لإنشاء مستندات PDF مع الصور وCSS

يعد إنشاء مستندات PDF مطلبًا شائعًا في تطبيقات الويب، خاصة لإنشاء الفواتير والإيصالات والشهادات والتذاكر والتقارير المتنوعة. في هذا البرنامج التعليمي الشامل، سنتعمق في استخدام Laravel وDomPDF لإنشاء مستندات PDF تحتوي على صور وCSS. سنغطي خيارات التكوين واعتبارات التصميم وحجم المخرجات والأداء واستعلامات قاعدة البيانات. بالإضافة إلى ذلك، سنناقش النصائح والحيل للتعامل مع فواصل الصفحات، وتحميل الصور باستخدام base64، والمزيد.

المتطلبات الأساسية

قبل أن نبدأ، تأكد من تثبيت ما يلي:

  • PHP >=8.2
  • الملحن 2
  • لارافيل 10

مقدمة

DomPDF هي مكتبة PHP شائعة تسمح لك بإنشاء مستندات PDF من محتوى HTML. وهو يدعم تصميم CSS والصور وخيارات التكوين المتنوعة. من خلال دمج DomPDF مع Laravel، يمكنك بسهولة إنشاء مستندات PDF متطورة باستخدام قوالب Blade وميزات Laravel القوية.

مكتبات PDF الشائعة الأخرى تشمل TCPDF، FPDF، وSnapy.

ومع ذلك، يتم استخدام DomPDF على نطاق واسع نظرًا لسهولة التكامل ومجموعة الميزات القوية.

في هذا البرنامج التعليمي، سنتعرف على عملية إعداد مشروع Laravel، وتكوين DomPDF، وإنشاء وحدة تحكم للتعامل مع إنشاء PDF، وتصميم قالب Blade لمحتوى PDF، وإضافة مسارات، وتحسين الأداء. سنناقش أيضًا خيارات التكوين المتقدمة ونقدم النصائح والحيل لإنشاء مستندات PDF عالية الجودة.

الافتراضات

يفترض هذا البرنامج التعليمي أن لديك فهمًا أساسيًا لـ Laravel وPHP. إذا كنت جديدًا في Laravel، فكر في مراجعة وثائق Laravel الرسمية لتتعرف على إطار العمل. ومن ناحية أخرى، يمكنك متابعة Laravel Bootcamp للبدء في استخدام Laravel.

الخطوة 1: إعداد مشروع Laravel

أولاً، قم بإنشاء مشروع Laravel جديد إذا لم يكن لديك مشروع بالفعل، أو استخدم مشروعًا موجودًا، بالطبع، يمكنك تخطي هذه الخطوة إذا كان لديك بالفعل مشروع Laravel.

composer create-project --prefer-dist laravel/laravel pdf-tutorial
cd pdf-tutorial

بعد ذلك، قم بتثبيت DomPDF:

composer require barryvdh/laravel-dompdf

نشر ملف التكوين:

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

الخطوة 2: تكوين DomPDF

افتح ملف config/dompdf.php. يحتوي ملف التكوين على خيارات متنوعة لتخصيص مخرجات PDF. هنا يمكنك تعيين خيارات متنوعة بما في ذلك حجم الورق الافتراضي والاتجاه والخط والمزيد.

  • حجم الورق: يمكنك ضبط حجم الورق الافتراضي.
  'default_paper_size' => 'a4',
  • الاتجاه: اضبط الاتجاه الافتراضي (عمودي أو أفقي).
  'orientation' => 'portrait',
  • الخط: يمكنك تحديد الخط الافتراضي وإضافة خطوط مخصصة.
  'default_font' => 'serif',

الخطوة 3: إنشاء وحدة تحكم

إنشاء وحدة تحكم للتعامل مع إنشاء PDF:

php artisan make:controller PDFController

في app/Http/Controllers/PDFController.php، أضف الكود التالي:

 'Laravel PDF Example',
            'date' => date('m/d/Y'),
        ];

        $pdf = PDF::loadView('myPDF', $data);

        return $pdf->download('document.pdf');
    }
}

الخطوة 4: إنشاء قالب بليد

إنشاء قالب Blade لمحتوى PDF:

touch resources/views/myPDF.blade.php

أضف المحتوى التالي إلى myPDF.blade.php:



    Laravel PDF Example

{{ $title }}

Date: {{ $date }}

This is an example of a PDF document generated using Laravel and DomPDF.

الخطوة 5: إضافة الطرق

إضافة مسارات للتعامل مع إنشاء ملفات PDF في المسارات/web.php:

use App\Http\Controllers\PDFController;

Route::get('generate-pdf', [PDFController::class, 'generatePDF']);

الخطوة 6: إضافة الصور

يمكنك إضافة صور إلى ملف PDF عن طريق تضمينها كسلاسل مشفرة بـ base64 أو باستخدام عناوين URL.

يمكن تضمين الصور مباشرة في قالب Blade باستخدام تشفير base64. على سبيل المثال، لتضمين صورة من الصور العامة/الصور، إليك كيفية القيام بذلك:

Logo

أو مباشرة من عنوان URL:

Logo

الخطوة 7: تحسين الأداء

استعلامات قاعدة البيانات

عند التعامل مع مجموعات بيانات كبيرة (على سبيل المثال، 1000 سجل)، استخدم ترقيم الصفحات أو التجزئة لإدارة استخدام الذاكرة:

$data = DB::table('users')->paginate(50);

$pdf = PDF::loadView('myPDF', ['data' => $data]);

حجم الإخراج

لتقليل حجم الإخراج، قلل من استخدام الصور الثقيلة واختر الرسومات المتجهة عندما يكون ذلك ممكنًا. استخدم أيضًا CSS الفعال.

فواصل الصفحات

تأكد من أن المحتوى منظم بشكل جيد لفواصل الصفحات. استخدم CSS للتعامل مع فواصل الصفحات:

.page-break {
    page-break-after: always;
}

وفي قالب Blade الخاص بك:

الخطوة 8: التكوين المتقدم

لمزيد من التكوينات المتقدمة، راجع وثائق DomPDF. يمكنك تخصيص كل شيء تقريبًا، بدءًا من الهوامش وحتى طريقة تحميل الخطوط.

استخدام الخطوط المخصصة

لاستخدام الخطوط المخصصة، قم أولاً بإضافتها إلى مشروعك وقم بتكوين DomPDF لاستخدامها:

'custom_font_dir' => base_path('resources/fonts/'),
'custom_font_data' => [
    'custom-font' => [
        'R' => 'CustomFont-Regular.ttf',
        'B' => 'CustomFont-Bold.ttf',
    ]
],

في قالب Blade الخاص بك:

خاتمة

باتباع هذا الدليل التفصيلي، يمكنك إنشاء مستندات PDF متطورة باستخدام Laravel وDomPDF، مع استكمال الصور وتصميم CSS. لقد غطى هذا البرنامج التعليمي خيارات التكوين الأساسية واعتبارات التصميم وتحسين الأداء. يمكنك توسيع هذا الأساس لبناء نظام قوي لإنشاء المستندات لتطبيق Laravel الخاص بك.

السلسلة المحتملة والمستودع

هذا البرنامج التعليمي جزء من سلسلة حول إنشاء PDF باستخدام Laravel. يمكن العثور هنا على مستودع كامل يحتوي على نماذج مستندات متنوعة (الفواتير، والإيصالات، والشهادات، والتذاكر، وما إلى ذلك). لا تتردد في المساهمة وتوسيع المجموعة.

تعليمات سعيدة!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/alphaolomi/geneating-pdf-documents-in-laravel-n07?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3