برنامه نویسی

نحوه ساخت PDF پویا Bangla با استفاده از Laravel mPDF و ارسال آنها از طریق ایمیل

نصب و راه اندازی

  1. مخزن پروژه را شبیه سازی یا دانلود کنید.
  2. به دایرکتوری پروژه در ترمینال خود بروید.
  3. اجرا کن composer install برای نصب تمام وابستگی ها
composer require mpdf/mpdf
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پیکربندی

  1. کپی 🀄 .env.example به .env.
  2. تنظیمات پایگاه داده خود را در .env فایل.
  3. تنظیمات ایمیل خود را در .env فایل.

نصب سفارشی فونت Bangla

  1. فونت Bangla مورد نظر خود را دانلود کرده و در آن قرار دهید resources/fonts فهرست راهنما.
  2. فونت Bangla را دانلود کنید Nikosh.ttf
  3. چسب فونت را کپی کنید laravel-PDF-bangla-font\vendor\mpdf\mpdf\ttfonts
  4. باز کن config/pdf.php و به روز رسانی کنید 'default_font' نام فایل فونت Bangla خود را (بدون پسوند) کلید کنید.

استفاده

  1. مسیر خود را برای تولید PDF مشخص کنید.
Route::get('/generate-pdf', [FormController::class, 'generatePDFAndSendEmail']);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. را اجرا کنید generatePDFAndSendEmail روش در کنترلر شما
public function generatePDFAndSendEmail(Request $request)
{
    // Prepare data for the PDF
     $emailData = [
        'email' => 'example@gmail.com',
        'password' => '123',
        'eng_name' => 'Hasibur Rahman',
        'ban_name' => 'হাসিবুর রহমান',
        'father_name' => 'Hasmat Ali',
        'mother_name' => 'Zainab Begum',
        'permanent_address' => 'California',
        'mobile' => '01700000000',
        'blood_group' => 'AB+',
        'department_id' => 9,
        'date_of_birth' => '1998-12-21',
        'passing_year_id' => 4,
        'image' => 'https://www.redwolf.in/image/cache/catalog/stickers/tom-face-sticker-india-600x800.jpg',
        'signature' => 'https://signature.freefire-name.com/img.php?f=3&t=Tom',
        'lm_no' => '2000',
        'current_date' => '2022-11-30',
    ];

    // Generate PDF content
    $pdfContent = $this->generatePDF($emailData);

    // Send email with PDF attachment
    $this->sendEmailWithAttachment($emailData, $pdfContent, 'recipient@example.com');

    // Return a response indicating success
    return "Email sent with PDF attachment.";
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. را اجرا کنید generatePDF و sendEmailWithAttachment روش های موجود در کنترلر شما
private function generatePDF($data)
{
    // Create new mPDF instance
    $mpdf = new \Mpdf\Mpdf([
        'default_font_size' => 16,
        'default_font' => 'nikosh', // Change this to your desired Bengali font
    ]);

    // Generate PDF content with data
    $pdfContent = view('pdf.bengali_pdf', $data)->render();

    // Write HTML content to PDF
    $mpdf->WriteHTML($pdfContent);

    // Get PDF content as string
    return $mpdf->Output('', 'S');
}

private function sendEmailWithAttachment($emailData, $pdfData, $recipientEmail)
{
    // Send email with PDF attachment
    Mail::send('pdf.bangla_email', $emailData, function ($message) use ($emailData, $pdfData, $recipientEmail) {
        $message->to($recipientEmail, 'Recipient Name')
            ->subject('New User Registration')
            ->attachData($pdfData, 'LM-'.$emailData['lm_no'].'.pdf');
    });
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

چشم انداز

فایل مشاهده شما (pdf.bengali_pdf.blade.php) باید شامل ساختار HTML برای محتوای PDF شما باشد.

<!-- Sample PDF content -->
<h1>{{ $emailData['eng_name'] }}</h1>
<h2>{{ $emailData['ban_name'] }}</h2>
<p>Father's Name: {{ $emailData['father_name'] }}</p>
<p>Mother's Name: {{ $emailData['mother_name'] }}</p>
<p>Permanent Address: {{ $emailData['permanent_address'] }}</p>
<p>Mobile: {{ $emailData['mobile'] }}</p>
<p>Blood Group: {{ $emailData['blood_group'] }}</p>
<p>Date of Birth: {{ $emailData['date_of_birth'] }}</p>
<!-- You can include additional dynamic data as required -->

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اجرای برنامه

  1. سرور توسعه لاراول خود را راه اندازی کنید.
  2. بازدید کنید /generate-pdf مسیر در مرورگر شما
  3. بررسی کنید که ایمیل با پیوست PDF ارسال شده باشد.

نوشته های مشابه

دکمه بازگشت به بالا