
بحث امروز ما در باورژن، ساخت pdf از ویو در لاراول است. همانطور که در عنوان مقاله مشخص است، آموزش با همراه مثال ارائه کردهایم. در این مثالها از کتابخانه Dompdf استفاده کردهایم.
توجه
این پکیج از زبان فارسی پشتیبانی نمیکند، در صورت نیاز میتوانید از پکیج niklasravnsborg/laravel-pdf استفاده کنید.
Dompdf یک مبدل HTML به PDF است. dompdf با سه آیتم زیر سازگار است:
- html
- css2.1
- و همچنین موتور رندری (rendering engine) که با زبان php نوشته شدهاند.
قدم اول: دانلود پکیج laravel-dompdf
کامند زیر برای نصب پکیج laravel-dompdf است.
قدم دوم: کانفیگ پکیج برای لاراول
به مسیر config >> app.php بروید و کانفیگ زیر را اضافه کنید.
تا اینجا ما یک PDF register provider برای برنامه خودمان ایجاد کردهایم. یک alias هم برای آن ست میکنیم. بنابراین هر زمان که خواستیم PDF ایجاد کنیم کافی است در فایلی که میخواهیم از فساد PDF استفاده کنیم، این alias را یوز کنیم.
توجه
یوز (use) یعنی ایمپورت کردن نام کلاس یا اینترفیس تا در آن فایل دیگر نیاز به نوشتن نیم اسپیس کامل آن نباشد و تنها با نوشتن نام آن کلاس یا اینترفیس بتوانیم از آن استفاده کنیم.
برای مثال اگر نیم اسپیس کلاس App\Models\User
را بخواهیم در فایلی یوز کنیم به صورت use App\Models\User;
نوشته میشود و برای استفاده مینویسیم User::findOrFail($id)
.
سپس، ما یک کلاس PDF را instantiate میکنیم یعنی یک آبجکت از روی آن میسازیم. در ادامه از API آن برای تقویت بیشتر فایل PDF تولید شده، استفاده میکنیم.
قدم سوم: ساختن فایل layout blade
در پوشه resources >> views
یک فایل جدید با نام layout.blade.php ایجاد کنید.
قدم چهارم: ساختن فایلهای مدل و مایگریشن
با استفاده از کامند زیر مدل و مایگریشن را ایجاد میکنیم.
حالا به پوشه [timestamp].create_disneypluses_table.php بروید و ستونها را اضافه کنید.
در ادامه با دستور زیر دیتابیس را migrate
کنید.
قدم پنجم : ساختن کنترلر و روت
قدم بعدی این است که فایل DisneyplusController.php را ایجاد کنید.
حالا دو روت در پوشه routes >> web.php اضافه کنید.
حالا دو متد داخل فایل DisneyplusController.php ایجاد کنید.
قدم ششم: ساخت فرم در فایل بلید برای ورود دادهها
حالا، در پوشه views، فایلی با نام form.blade.php ایجاد کنید. کد زیر را داخل آن بنویسید:
قدم هفتم: ذخیره کردن دیتا در دیتابیس
حالا داخل فایل DisneyplusController.php دو فانکشن مینویسیم.
ابتدا فایل فرم را نمایش دادهایم. در فانکشن ذخیره سازی، اعتبارسنجی را چک کردهایم در نهایت دادهها را داخل دیتابیس ذخیره کردهایم.
فیلدهای قابل پر کردن را داخل فایل مدل Disneyplus.php قرار دهید.
آدرس http://localhost:8000/disneyplus را در مرورگر باز کنید.
یک فرم خواهیم دید. دیتاهایی را ذخیره کنید. اگر همه کدها را به درستی نوشته باشید، یک ورودی در دیتابیس خواهید دید.
قدم هشتم: ساختن یک فایل ویو برای نمایش دادن دیتا
قبل از اینکه فایل ویو را ایجاد کنیم.باید یک روت داخل web.php اضافه کنیم.
حالا فایل ویو را با نام list.blade.php ایجاد کنید و کدهای زیر را اضافه کنید.
حالا در متد index()
فایل DisneyplusController.php کدهای زیر را اضافه کنید.
به مسیر http://localhost:8000/disneyplus/list بروید.
لیست نمایشها را مشاهده خواهید کرد.
قدم نهم: ساختن یک روت برای دانلود فایل pdf
کدهای زیر را در فایل روت اضافه کنید.
فایل list.blade.php را بروزرسانی کنید و لینک دانلود PDF را قرار دهید.
قدم دهم: ساختن فایل pdf.blade.php برای طراحی کردن pdf
میتوانید یک نمونه جدید DOMPDF ایجاد کنید و یک استرینگ HTML، فایل یا نام ویوی بلید را لود کنید. امکان ذخیره سازی به صورت فایل و ریسپانس استریم را نیز دارید.
توجه
منظور از ریسپانس استریم این است که خروجی تنها به مرورگر ارسال میگردد تا مرورگر آن را رندر کند و برای دفعات بعدی باید مجددا ساخته شود، چون کد در فایل یا جای دیگری ذخیره نمیگردد.
خب، داخل پوشه views یک فایل با نام pdf.blade.php ایجاد کنید و کدهای زیر را اضافه کنید.
ما یک جدول ساده ایجاد کرده ایم که داخل یک PDF ایجاد می شود.
قدم یازدهم: نوشتن فانکشن کنترولر برای دانلود پی دی اف
کدهای زیر را داخل DisneyplusController.php کپی کنید.
به مسیر http://laravel.test/disneyplus/list بروید و روی لینک دانلود PDF کلیک کنید.
میبینید که فایل پی دی اف دانلود و باز میشود. همچنین جدولی که شامل لیستهای نمایش است را خواهید دید.
امیدوارم که این مقاله آموزشی باورژن برای شما مفید واقع شود.

رقیه اباذری
تو دانشگاه IT خوندم و اکثر منابع کتابهای ترجمه شده بودند و صدالبته مبهم :( مثلا element رو "عنصر" ترجمه میکردن و من همیشه میرفتم تو شیمی و جدول مندلیف. تو باورژن سعی کردم تا حد ممکن مطالب رو با زبان ساده و قابل درک بنویسم. باشد که کسانی که تازه پا به عرصه برنامهنویسی گذاشتن، راغبتر بشن و با نظرات و فیدبکهای شما راه هموارتر بشه:)
دیدگاهها
ثبت دیدگاه