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

نصب و راه اندازی
- مخزن پروژه را شبیه سازی یا دانلود کنید.
- به دایرکتوری پروژه در ترمینال خود بروید.
- اجرا کن
composer install
برای نصب تمام وابستگی ها
composer require mpdf/mpdf
پیکربندی
- کپی 🀄
.env.example
به.env
. - تنظیمات پایگاه داده خود را در
.env
فایل. - تنظیمات ایمیل خود را در
.env
فایل.
نصب سفارشی فونت Bangla
- فونت Bangla مورد نظر خود را دانلود کرده و در آن قرار دهید
resources/fonts
فهرست راهنما. - فونت Bangla را دانلود کنید
Nikosh.ttf
- چسب فونت را کپی کنید
laravel-PDF-bangla-font\vendor\mpdf\mpdf\ttfonts
- باز کن
config/pdf.php
و به روز رسانی کنید'default_font'
نام فایل فونت Bangla خود را (بدون پسوند) کلید کنید.
استفاده
- مسیر خود را برای تولید PDF مشخص کنید.
Route::get('/generate-pdf', [FormController::class, 'generatePDFAndSendEmail']);
- را اجرا کنید
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.";
}
- را اجرا کنید
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 -->
اجرای برنامه
- سرور توسعه لاراول خود را راه اندازی کنید.
- بازدید کنید
/generate-pdf
مسیر در مرورگر شما - بررسی کنید که ایمیل با پیوست PDF ارسال شده باشد.