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

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

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

برای آشنایی بیشتر با لیست کارهایی که با این لایبرری می‌توان انجام داد هم می‌توانید به لیست مثال‌های لایبرری TCPDF مراجعه نمایید. همچنین چنانچه علاقمند به فراگیری گام به گام زبان برنامه‌نویسی PHP هستید، می‌توانید به دورهٔ آموزش PHP در سکان آکادمی مراجعه نمایید.