ساخت pdf فارسی با php

برای ایجاد فایل pdf چند تا کتابخونه خوب برای php وجود داره dompdf,TCPDF و mPDF

من هر سه رو تست کردم و بی شک mPDF چه در پشتیانی زبان فارسی چه در سرعت و کارایی سرامد تر از بقیه هست.

برای شروع اول یک پروژه با composer ایجاد میکنیم

حالا فایل index.php با محتویات زیر را درست میکنیم

mPDF بیشتر تگ های html رو پشتیبانی میکنه میتونید لیستش رو ببینید. در رابطه با دستورات CSS هم بهتره از دستوراتی که چند مقدار باهم میگیرن مثل font استفاده نکنید چون کار نمیکنه به جاش از دستورات صریح استفاده کنید: font-family,font-size… البته تو نسخه ۶٫۱ که اینجوری هست.

بعد اینکه ممکنه مواردی ببینید که استایلتون تو  مرورگر درست نشون میده ولی تو اینجا نه که طبیعی هست چون ممکنه هنوز تو mPDF پشتیبانی ندشه باشه تو این موارد پیشنهاد میکنم از inline-style تو خود تگ HTML استفاده کنید.

برای اینکه فونت دلخواه خودتون را استفاده کنید باید فونت را در پوشه vendor/mpdf/mpdf/ttfonts قرار بدید که برای من دو تا فایل byekan.ttf و byekan_bold.ttf هست بعد فایل config_fonts.php در مسیر vendor/mpdf/mpdf را باز کنید و به آرایه $this->fontdata مقدار زیر را اضافه کنید

دو مقدار useOTL و useKashida تنظیمات مخصوص فونت های عربی و فارسی هستند میتونید توضیحشو اینجا بخونید.

یه نکته خیلی مهم اینکه فونتون باید جدول GDEF رو داشته باشه که این مورد من رو خیلی اذیت کرد چون از همین فونت یکان من هرچی نسخه استفاده میکردم خطا میداد که این جدول رو نداره

البته خوشبختانه به کمک دوست خوبم Erfan Sahafnejad نسخه درستش رو پیدا کردم که میتونید از اینجا یا از irfont دانلود کنید.

این کتابخونه تنظیمات زیادی داره که حتمن باید مطالعه کنید.

به روز رسانی ۹۶-۱۰-۲۱

با تشکر از اطلاع رسانی آقای ihnd در نظرات –  میتونید نسخه اصلاح شده بیشتر فونت های معروف فارسی که با این کتابخونه سازگار هستند رو از Standardized Persian Fonts By SCICT یا اینجا دانلود کنید.

۷ comments

  1. سلام
    ممنون از مطلب بسیار خوبتون
    من یه راهنمایی نیاز دارم.داخل اون html که قراره pdf بشه کد php دارم و این کلاس نمیتونه کد php رو parse بکنه و به همین خاطر اون فاکتوری که میخوام بسازم به مشکل میخوره.میشه لطفا یه راهنمایی بهم بدین که چطور این مشکل رو حل کنم؟
    ممنون

  2. ممنون از آموزش خوبتون.
    من یک نسخه فونت xbzar دارم که نمیدونم قبلن از کجا گرفتم و با این کتابخونه کار میکنه. ولی الان نیاز به فونت میترا دارم که با این کتابخونه ازش استفاده کنم و نمیتونم نسخه سازگارش رو پیدا کنم.
    روشی برای تبدیل فونت bmitra به نسخه سازگار با این کتابخونه هست؟ همین خطای otl را بهم میده روی فونت bmitra
    بازم از آموزش خوبتون ممنونم.

      1. ممنون از اینکه سریع پاسخ دادید. این را تست کردم و خطای otl گرفتم.
        بدون آپشن otl هم فونتها به هم نمی چسبند.

        باید یک راهی برای تبدیل فونت باشد. این otl چی هست اصلن؟

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *