خروجی PDF در PHP ( فارسی و راستچین )

خروجی 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 است .

دموی پروژه :

خروجی PDF در PHP


در صورت دانلود فایل زیر قبل از اجرا پروژه دستور

composer install

را وارد کنید تا تمامی پکیج های مورد نیاز از جمله mpdf نصب شود .


دانلود پروژه خروجی PDF در PHP

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

لیست نظرات

  1. علیرضا
    علیرضا

    سلام وقت بخیر. دوست عزیز برای مقالات وردپرس به چه صورت میتونم با قرار دادن کدها تو فانکشن بتونم بشه مانند عضویت در خبرنامه بشه وقتی ایمیل وارد میکنه یه اسکرین شات از اون بادی اون صفحه بدون هدر و فوتر برای کاربر بره

    18 فروردین 1403 | 10:18:07
  • حسین باقری
    حسین باقری

    درود ، این مورد رو نمیشه کوتاه گفت ، اگر وقت شد یک مقاله ای براش می نویسیم .

    20 فروردین 1403 | 09:19:05
  • رضا ابراهیمی
    رضا ابراهیمی

    سلام وقت بخیر من قصد دارم از فونت ترافیک استفاده کنم ولی به مشکل میخوره می تونید راهنمایی کنید؟

    13 شهریور 1401 | 16:39:40
    • حسین باقری
      حسین باقری

      سلام ، خطای مشکل تون رو بفرستید

      13 شهریور 1401 | 21:32:56
  • الهام
    الهام

    ممنون از مطلب خوبتون فقط یک سوال الان من با ایجکس تونستم فایل pdf ایجاد کنم و لینک بازگشتی رو دریافت و توسط یک دکمه که اول فایل رو ایجاد میکنه و بعد لینک به دکمه دیگر میدهد فایل رو نشون بدهم اما فایل درون روت اصلی ذخیره میشه نه داخل temp میشه در این باره هم یک مطلب بگذارید که کلا با ajax چجوری اطلاعات کل فرم رو بگیرم و با pdf نمایش بدهم. تشکر

    19 مهر 1400 | 13:59:39
    • حسین باقری
      حسین باقری

      درود این آموزش پایه ای برای ایجاد فایل pdf هست حالا اگر بخواین که اطلاعات رو بگیرید کافیه داده هایی که کاربر داخل فرم فرستاده رو با سرور php بگیرید و به صورت table داخل pdf نمایش بدید .

      19 مهر 1400 | 14:31:37
      • الهام
        الهام

        ممنون از شما من این مشکل را حل کردم اما مشکل دیگر این است که بعد از بردن اطلاعات به سرور هاست اعلام فرمودن که امکان نصب کامپورز روی هاست اشتراکی وجود ندارد و فقط روی هاست اختصاصی می شود کامپوزر را نصب کرد لطفا روش استفاده از کتابخانه mpdf بدون کامپوزر را بفرمایید. تشکر

        02 آبان 1400 | 14:24:33
        • حسین باقری
          حسین باقری

          می تونید روی سیستم شخصی خودتون کتابخانه رو اضافه کنید و پوشه vendor روی آدرس root یا پوشه اصلی تون انتقال بدید .

          02 آبان 1400 | 14:54:51
    contact us