اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يوجد مكتبة mPDF لكن الأفضل حاليًا مكتبة Gpdf فهي تعتمد على mPDF لكنها أسهل في الاستخدام وأحدث أيضًا، وأيضًا تتكامل مع Blade Views و Facades في Larave بشكل جاهز.

ببساطة الكود التالي هو كل ما تحتاجه لإنشاء PDF من ملف Blade View:

use Omaralalwi\Gpdf\Facade\Gpdf as GpdfFacade;

public function generatePdf()
{
    $html = view('pdf.example-1')->render();
    $pdfContent = GpdfFacade::generate($html);
    return response($pdfContent, 200, ['Content-Type' => 'application/pdf']);
}

ولكن يجب استخدام نوع خط مخصص للغة العربية وبها خطوط جاهزة وهي التالي:
https://github.com/omaralalwi/Gpdf?tab=readme-ov-file#support-for-arabic

  • 0
نشر

وعليكم السلام ورحمة الله تعالى وبركاته،

نعم توجد مكتبة معروفة تدعم إنشاء ملفات PDF باللغة العربية في Laravel وهي "Dompdf" عند استخدامها مع Laravel عبر حزمة مثل barryvdh/laravel-dompdf وهي من أكثر الحلول شيوعا وأسهلها دمجا.

لكن الدعم الافتراضي للعربية فيها ضعيف نوعا ما لأن Dompdf لا يدعم كل الخطوط والاتجاهات بشكل جيد، وخاصة الكتابة من اليمين لليسار (RTL).

لذلك لتتمكن من توليد ملفات PDF باللغة العربية بشكل صحيح، يجب توفير خط يدعم العربية مثل "Amiri" أو "Cairo" وتفعيله يدويا داخل ملف CSS المستخدم في ال HTML المراد تحويله إلى PDF، وأيضا إضافة خاصية:

direction: rtl;
text-align: right;

إن كنت تبحث عن دعم عربي أفضل، يمكنك أيضا النظر في مكتبة mpdf/mpdf التي تعد خيارا قويا وتدعم العربية وRTL بشكل أفضل وأكثر استقرارا، لكن لا توجد لها حزمة Laravel رسمية بنفس سهولة barryvdh وبالرغم من ذلك يمكن دمجها يدويا في Laravel

  • 0
نشر

مكتبة mpdf هي مكتبة لا تنتمي رسميا إلى Laravel لكنها تعمل معه دون مشاكل.

ومن مميزاتها الرئيسية أنها تدعم الكتابة بالعربية بشكل صحيح، بما في ذلك الحروف المتصلة والاتجاه من اليمين إلى اليسار (RTL) لذا لا تحتاج إلى إعدادات معقدة، فقط اختر خطا يدعم العربية مثل Amiri أو Cairo وأضفه داخل الكود بالنسبة لتثبيت المكتبة فهو يتم عبر Composer كالتالي:

composer require mpdf/mpdf

ثم في كودك:

$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'default_font' => 'Amiri']);
$mpdf->WriteHTML('<div style="direction: rtl; font-family: Amiri;">هذا نص عربي</div>');
$mpdf->Output();

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

فهذه المكتبة مناسبة أيضا للتقارير وحتى لإعداد الفواتير، أو أي مستند رسمي باللغة العربية بعكس مكتبات أخرى مثل dompdf التي قد تواجهك مشاكل في فصل الحروف أو المحاذاة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...