چگونه در زبان برنامه‌نویسی PHP، فایل PDF با متون فارسی ایجاد کنیم؟

یکی از قابلیت‌های زبان برنامه نویسی پی اچ پی، ایجاد کردن فایل‌های پی دی اف با محتوای عکس، متن، علائم و غیره است. برای این منظور، از یک لایبرری تحت عنوان FPDF می‌توان استفاده کرد اما این در حالی است که این لایبرری از UTF-8 پشتیبانی نمی‌کند لذا نباید این انتظار را داشته باشیم که حروف و کلمات فارسی به خوبی نشان داده شوند. در این ترفند قصد داریم به معرفی یک لایبرری برای ایجاد فایل‌های پی دی اف که از زبان فارسی هم پشتیبانی می‌کند بپردازیم. با سکان آکادمی همراه باشید.

لایبرری TCPDF یک پروژه ی متن باز برای زبان برنامه نویسی پی اچ پس است که در سال 2002 در اختیار توسعه دهندگان قرار گرفت. این لایبرری بسیار قدرتمند بوده و ویژگی‌های بسیاری را در اختیار توسعه دهندگان قرار می‌دهد که از آن جمله می‌توان به موارد زیر اشاره کرد:
- عدم نیاز به سایر لایبرری ها برای ساخت PDF
- پشتیبانی از UTF-8 و چیدمان راست به چپ برای زبان های فارسی، عربی و ...
- پشتیبانی از فونت‌های TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType
- امکان استفاده از تصاویر در فایل های PDF
- پشتیبانی از فرمت تصاویر JPEG, PNG و SVG
- و بسیاری ویژگی‌های دیگر.

برای استفاده از این لایبرری، می‌توان به ریپازیتوری گیت هاب TPPDF مراجعه نموده و آن را دانلود کرد. حال فولدری ایجاد کرده مثلا تحت عنوان pdf و فایل دانلود را از حالت زیپ خارج ساخته و داخل آن قرار می دهیم. در روت فولدر pdf، فایلی تحت عنوان index.php ایجاد می کنیم و کدهای زیر را داخل آن قرار می دهیم:


require_once('tcpdf-master/tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set font
$pdf->SetFont('dejavusans', '', 12);

// add a page
$pdf->AddPage();

// Persian content
$htmlpersian = '<p>این یک متن فارسی است</p>';
$pdf->WriteHTML($htmlpersian, true, 0, true, 0);

// set LTR direction for english translation
$pdf->setRTL(false);

//Close and output PDF document
$pdf->Output();

همان طور که در کد فوق مشاهده می شود، ابتدا با دستور require_once لایبرری TCPDFرا به پروژه ی خود فراخوانی می کنیم. سپس با استفاده از دستور new یک آجبکت از روی کلاس RCPDF ساخته و آن را به متغیری تحت عنوان pdf$ نسبت می دهیم. از این پس، به کلیه ی فانکشن های از پیش تعریف شده در کلاس TCPDF مثل ()SetFont یا ()AddPage و ... دسترسی خواهیم داشت. برای آگهی از لیست کارهایی که با این لایبرری می توان انجام داد، می توانید به لیست مثال های لایبرری TCPDF مراجعه نمایید.

0


بهزاد مرادی

از جمله علائقم می‌شه به نشر علم،‌ سرمایه‌گذاری روی نسل آینده، برنامه‌نویسی به خصوص زبان PHP و جامعهٔ اپن‌سورس و همچنین راه‌اندازی استارتاپ و کارآفرینی اشاره کرد و اعتقاد دارم که سکان آکادمی می‌تونه بستری باشه که از اون طریق به علائقم جامهٔ عمل بپوشونم!






از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)