خروجی PDF در PHP ( فارسی و راستچین )
خروجی PDF در PHP – در این آموزش قصد داریم تا اطلاعات که می خواهیم را در قالب یک فایل pdf خروجی داده و برای کاربر قابل دانلود باشد .
پیش نیاز ها :
1- PHP نسخه 7 به بالا
2- کتابخانه mpdf
ابتدا کتابخانه ی mpdf را از طریق composer و با دستور زیر به پروژه خود اضافه کنید :
composer require mpdf/mpdf
به این دلیل که می خواهیم از فونت فارسی شبنم استفاده کنیم پوشه ای با نام fonts در مسیر اصلی پروژه بسازید و فونت های ( TTF ) خود را در آن وارد کنید .
فونت هایی که در پوشه fonts وجود دارد : ( اولین مورد نرمال و دومین bold )
1- shabnam.ttf
2- shabnam-bold.ttf
در مسیر اصلی :
1- پوشه ای دیگری با نام inc برای تنظیم font ها در PHP ساخته
2- و فایلی با نام font-mpdf.php در داخل آن بسازید .
حال فایل font-mpdf.php را باز کرده و کد زیر را وارد کنید :
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults(); $fontDirs = $defaultConfig['fontDir']; $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults(); $fontData = $defaultFontConfig['fontdata']; function load_font() { global $fontDirs, $fontData; return [ 'fontDir' => array_merge($fontDirs, [ RPD_PATH . '/fonts', ]), 'fontdata' => $fontData + [ 'shabnam' => [ 'R' => 'shabnam.ttf', 'B' => 'shabnam-bold.ttf', 'useOTL' => 0xFF, 'useKashida' => 75, ], ], 'default_font' => 'shabnam', ]; }
لاین 14 و 21 نام فونت یعنی shabnam و در لاین 15 و 16 به ترتیب R برای فونت با استایل معمولی و B برای فونت با استایل bold که در داخل پوشه fonts از قبل قرار دادیم .
در مسیر اصلی و در داخل فایل index.php کد زیر را اضافه می کنیم :
define("RPD_PATH" , __DIR__); require_once "vendor/autoload.php"; require_once "inc/font-mpdf.php"; $font = load_font(); $mpdf = new \Mpdf\Mpdf($font); $mpdf->SetDirectionality('rtl'); $mpdf->WriteHTML('رپید کد • کتابخانه مجازی برنامه نویسان
در رپید کد بیش از 100 مقاله مفید آموزشی در زمینه برنامه نویسی وجود دارد
'); $pdf_file_name = "rapidcode-report-" . time() . ".pdf"; $mpdf->Output($pdf_file_name, \Mpdf\Output\Destination::INLINE);
در خط 9 اطلاعاتی که می خواهید در PDF نمایش داده شود را به صورت html وارد کنید
خطا 11 هم نام فایل pdf است .
دموی پروژه :
در صورت دانلود فایل زیر قبل از اجرا پروژه دستور
composer install
را وارد کنید تا تمامی پکیج های مورد نیاز از جمله mpdf نصب شود .
لیست نظرات
ازتون بسیار بسیار ممنونم کدشما بسیار به من کمک کرد.بسیار عالی توضیح داده بودید.
سلام وقت بخیر. دوست عزیز برای مقالات وردپرس به چه صورت میتونم با قرار دادن کدها تو فانکشن بتونم بشه مانند عضویت در خبرنامه بشه وقتی ایمیل وارد میکنه یه اسکرین شات از اون بادی اون صفحه بدون هدر و فوتر برای کاربر بره
درود ، این مورد رو نمیشه کوتاه گفت ، اگر وقت شد یک مقاله ای براش می نویسیم .
سلام وقت بخیر من قصد دارم از فونت ترافیک استفاده کنم ولی به مشکل میخوره می تونید راهنمایی کنید؟
سلام ، خطای مشکل تون رو بفرستید
ممنون از مطلب خوبتون فقط یک سوال الان من با ایجکس تونستم فایل pdf ایجاد کنم و لینک بازگشتی رو دریافت و توسط یک دکمه که اول فایل رو ایجاد میکنه و بعد لینک به دکمه دیگر میدهد فایل رو نشون بدهم اما فایل درون روت اصلی ذخیره میشه نه داخل temp میشه در این باره هم یک مطلب بگذارید که کلا با ajax چجوری اطلاعات کل فرم رو بگیرم و با pdf نمایش بدهم. تشکر
درود این آموزش پایه ای برای ایجاد فایل pdf هست حالا اگر بخواین که اطلاعات رو بگیرید کافیه داده هایی که کاربر داخل فرم فرستاده رو با سرور php بگیرید و به صورت table داخل pdf نمایش بدید .
ممنون از شما من این مشکل را حل کردم اما مشکل دیگر این است که بعد از بردن اطلاعات به سرور هاست اعلام فرمودن که امکان نصب کامپورز روی هاست اشتراکی وجود ندارد و فقط روی هاست اختصاصی می شود کامپوزر را نصب کرد لطفا روش استفاده از کتابخانه mpdf بدون کامپوزر را بفرمایید. تشکر
می تونید روی سیستم شخصی خودتون کتابخانه رو اضافه کنید و پوشه vendor روی آدرس root یا پوشه اصلی تون انتقال بدید .