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

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

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

TCPDF یک پروژهٔ اپن‌سورس برای زبان برنامه‌نویسی PHP است که در سال 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$ نسبت می‌دهیم. از این پس، به کلیهٔ فانکشن‌های از پیش تعریف شده مثل ()SetFont یا ()AddPage و ... در کلاس TCPDF دسترسی خواهیم داشت (چنانچه علاقمند به فراگیری گام به گام زبان برنامه‌نویسی PHP هستید، می‌توانید به دورهٔ آموزش PHP در سکان آکادمی مراجعه نمایید.)

نظرات
اگر login نکردی برامون ایمیلت رو بنویس: