লারাভেল (Laravel) ব্যবহার করে পিডিএফ-এ (PDF) বাংলা টেক্সট কন্টেন্ট তৈরি করা
লারাভেল (Laravel) ব্যবহার করে পিডিএফ-এ (PDF) বাংলা টেক্সট কন্টেন্ট তৈরি করা
রেফারেন্স: Generate Bangla Text Content in PDF using Laravel
লিখেছেন আরিফুল ইসলাম | ২০ মার্চ, ২০২৩
লারাভেল অ্যাপ্লিকেশনে বাংলা পিডিএফ টেক্সট জেনারেট করার জন্য আমরা বেশিরভাগ সময়ই বিভিন্ন লাইব্রেরি ব্যবহার করে থাকি। কিন্তু ফন্ট, ডিরেক্টরি, পিএইচপি সংস্করণ বা প্যাকেজ এরর এর মতো কিছু সমস্যার কারণে এটি সমাধান করা অনেক সময় দুঃস্বপ্ন হয়ে দাঁড়ায়; যার ফলে ডেভেলপারদের মাথাব্যথা বাড়ে। আপনাদের সময় বাঁচানোর জন্য আমি এখানে এই সমস্যার সমাধান দেওয়ার চেষ্টা করব।
ধাপ ১:
আপনার লারাভেল অ্যাপ্লিকেশনে প্রয়োজনীয় carlos-meneses/laravel-mpdf প্যাকেজটি ইন্সটল করুন।
composer require carlos-meneses/laravel-mpdf
নোট: এটি আপনার লারাভেল ৮, ৯ এবং ১০-এ কাজ করবে; তবে আপনি নিচের মতো একটি এরর দেখতে পারেন।
Declaration of Mpdf\Mpdf::setLogger(Psr\Log\LoggerInterface $logger) must be compatible with Psr\Log\LoggerAwareInterface::setLogger(Psr\Log\LoggerInterface $logger): void
উপরের এরর সমাধানের জন্য আপনাকে composer.json ফাইলে নিচের মতো lower psr/log ডিপেন্ডেন্সি যোগ করতে হবে এবং composer update রান করতে হবে।
"psr/log": "2.0"
ধাপ ২:
এখন app/config ডিরেক্টরিতে pdf.php ফাইলটি পাবলিশ করতে নিচের কমান্ডটি রান করুন।
php artisan vendor:publish --tag=mpdf-config
ধাপ ৩:
সোলাইমানলিপি (Solaimanlipi) ফন্ট ডাউনলোড করুন এবং resources/fonts ফোল্ডারের ভেতর রাখুন।
লিংক: solaimanlipi.zip
আপনার config/pdf.php ফাইলটি নিচের মতো এডিট করুন:
'watermark_image_size' => 'D',
'watermark_image_position' => 'P',
'custom_font_dir' => base_path('resources/fonts/'), // don't forget the trailing slash!
'custom_font_data' => [
'solaiman_lipi' => [ // must be lowercase and snake_case
'R' => 'SolaimanLipi.ttf', // regular font,
'B' => 'SolaimanLipi_Bold_10-03-12.ttf', // bold font,
'useOTL' => 0xFF,
'useKashida' => 75
]
],
ধাপ ৪:
এখন web.php ফাইলে একটি রাউট (/pdf) ডিফাইন করুন।
Route::get('/pdf', [App\Http\Controllers\HomeController::class, 'pdfGenerate']);
ধাপ ৫:
আপনার HomeController-এ যান এবং HTTP রিকোয়েস্ট গ্রহণ করার জন্য pdfGenerate নামের একটি মেথড তৈরি করুন।
<?php
namespace App\Http\Controllers;
use Mccarlosen\LaravelMpdf\Facades\LaravelMpdf as PDF;
use Mpdf\MpdfException;
class HomeController extends Controller
{
/**
* @throws MpdfException
*/
public function pdfGenerate()
{
$data = [
'foo' => 'bar'
];
$pdf = PDF::loadView('pdf.document', $data); //view file location
return $pdf->stream('pdf.pdf');
//return $pdf->download('pdf.pdf');
}
}
ধাপ ৬:
এখন আউটপুট দেখতে বা পিডিএফ ফাইলটি ডাউনলোড করতে http://127.0.0.1:8000/pdf রান করুন।
আশা করি এটি আপনাকে সাহায্য করবে। আপনি যদি পিএইচপি এবং লারাভেল সম্পর্কিত নিয়মিত আপডেট পেতে চান, তাহলে এখানে আমাকে সাবস্ক্রাইব করুন এবং লিঙ্কডইনেও আমাকে ফলো করতে পারেন।
Do code, be crazy!
Comments (0)
Log in to leave a comment.
No comments yet. Be the first to share your thoughts.