Pdf یک فرمت فایل ساخته شده توسط شرکت Adobe برای نمایش متن و عکس ها در قالب یک سند است . Pdf برای دانلود حجم زیادی از اطلاعات متنی و عکس در وب استفاده می شود.
برای دانلود محتویات یک صفحه وب بصورت فایل Pdf ، با آموزش تبدیل HTML به PDF همراه باشید .
در این آموزش به شما راحت ترین راه برای تبدیل HTML به PDF در PHP را آموزش می دهیم.
Dompdf یک کتابخانه PHP برای تبدیل HTML به PDF است . با استفاده از کتابخانه Dompdf شما به راحتی می توانید قابلیت ایجاد فایل های PDF را در پروژه های وب خود اضافه کنید. مثلا اگردرحال انجام یک پروژه فروشگاهی هستید شاید نیاز باشد برای اشخاص حقوقی که محصولات شما را خریداری می کنند ، فاکتور فروش را به صورت یک فایل pdf خروجی بگیرید و تحویل مشتری بدهید که مطمینا حس خوبی را به خریدار منتقل می کند.
در این مقاله آموزشی یک اسکریپت ساده برای تبدیل HTML به PDF در PHP توسط Dompdf را در اختیار شما قرار دادیم.
نصب و راه اندازی
نسخه پایدار (stable) dompdf را از GitHub دانلود کنید . فایل های دانلود شده را اکسترکت و برای خوانایی و عدم تداخل با کتابخانه های دیگر پروژه به “dompdf” تغییر نام بدهید. Php-font-lib را از GitHub دانلود کنید و در دایرکتری dompdf/lib اکسترکت کنید Php-svg-lib را از GitHub دانلود کنید و در دایرکتری dompdf/lib اکسترکت کنید
ساخت نمونه از کلاس Dompdf
با استفاده از کد زیر فایل لود کلاس را فراخوانی و از آن یک نمونه از آن را بسازید
1 2 3 4 5 6 7 8 9 10 |
<?php // include autoloader require_once 'dompdf/autoload.inc.php'; // reference the Dompdf namespace use Dompdf\Dompdf; // instantiate and use the dompdf class $dompdf = new Dompdf(); ?> |
استفاده ابتدایی
فقط کافیست که محتویات html را به متد loadHtml پاس بدید و خروجی pdf بگیرید
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $dompdf->loadHtml('<h1>Welcome to NetParadis.com</h1>'); // (Optional) Setup the paper size and orientation $dompdf->setPaper('A4', 'landscape'); // Render the HTML as PDF $dompdf->render(); // Output the generated PDF to Browser $dompdf->stream(); ?> |
استفاده پیشرفته
کد php زیر یک فایل pdf از html میسازد . همچنین به شما امکان پیشنمایش یا دانلود را نیز می دهد. برای این منظور آدرس فایل یا آدرس URL را به تابع file_get_contents بدید تا خروجی فایل PDF را دریافت کنید
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $html = file_get_contents("pdf-content.html"); $dompdf->loadHtml($html); // (Optional) Setup the paper size and orientation $dompdf->setPaper('A4', 'landscape'); // Render the HTML as PDF $dompdf->render(); // Output the generated PDF (1 = download and 0 = preview) $dompdf->stream("netparadis",array("Attachment"=>0)); ?> |
آپشن ها
Dompdf گزینه های زیادی برای تنظیمات ساخت pdf را در اختیار شما قرار می دهد . از این لینک می توانید لیست کلیه option ها را در اختیار شما قرار میدهد
جمع بندی
این مقاله اسکریپت تبدیل HTML به PDF را در اختیار شما قرار میدهد. Dompdf یکی از پرکاربردترین کتابخانه های php است که به راحتی می توانید در پروژه های خود از آن استفاده کنید. Dompdf قابلیت های پیشرفته زیادی را برای ساخت pdf را ارایه می دهد. برای مثال می توانید از این قابلیت برای تحویل فاکتور فروش یا لیست سفارشات اخیر مشتری یا .. به صورت PDF استفاده کنید.
اگر قصد توسعه یا ویرایش یا اضافه کردن قابلیت ها مختلفی از آن را داشتید لطفا در نظرات این نوشته ارسال کنید مرسی.
موفق و پیروز باشید.
سلام استاد وقتتون بخیر
من نیاز دارم تا کتابخانه mpdf رو بدون استفاده از کامپوزر روی پروژه ام نصب کنم میشه راهنماییم کنید
سلام ممنون
اول با کامپوزر در یه پروژه جدا بزارید و بعد فایل autoload.php و فولدر vendor را در پروژه خود اضافه کنید
خواستم از محتوای آموزشی خوبی که آقای حسن شفیعی نوشتند و با گذشت چند سال هنوز هم برای برنامه نویسان وب ایرانی کاربردی و مفید است، تشکر کنم. امیدوارم که خداوند دستگیر شما باشد.
من کتابخانهی mpdf را با کومپوزر نصب کردم و به هاست اشتراکی انتقال دادم و به خوبی کار کرد. (البته برای من بر روی لوکال اجرا نشد که حتما به خاطر تنظیمات اکستشنهای پیاچپی و آپاچی در لوکال من بوده است).
دوستان توجه کنند که حتما باید رشتهای که به عنوان ورودی WriteHTML مثلا در کد زیر
mpdf->WriteHTML($farsiText)
متغیر farsiText،
در یک پاراگراف یا دیو و به هرحال با این استایل / سیاساس باشد:
این یک متن فارسی است!!!!’;
منظور اینکه حتما از فونتهایی که فارسی را ساپورت میکند استفاده کنید!
و dir=”rtl” را هم فراموش نکنید!
با تشکر از نویسنده و وبسایت خوبتان!
سلام ممنون از شما
خوشحالیم که مفید واقع شده
موفق و پیروز باشید
سلام
ممنون از سایت خوبتون
فایل خروجی لود نمیشه
لطفا راهنمایی کنید
سلام.
توجه کنید که خروجی دارای خطا نباشد یعنی یکبار با نوت پد باز کنید تا مطمین بشید
سلام وقت بخیر
اگه در قسمت Welcome to NetParadis.com کد php داشته باشیم چجوری خروجی اجرا میشه؟ عمل خواهد کرد؟
مثلا:
Welcome to
سلام. ممنون.
فقط html میتونید بزارید. اگه php میخواید باید قبلا اون رو بنویسید خروجیش رو د اخل متغییر ذخیره کنید و بعد بیارید داخل تابع
یه نمونه مثال میزنید؟
ممنون
سلام.ببخشید این که گفتین برای اینکه فارسیش درست بشه باید با کامپوزر انجامش بدین ، روی هاست سی پنل چی کنیم؟؟چونکه من فقط بلدم روی لوکال از کامپوزر استفاده کنم.
سلام. روی هاست اشتراکی نمیتونید کامند اجرا کنید. پس ابتدا داخل لوکال این کار رو انجام بدید و بعد اسکریپت رو انتقال بدید به هاست.
موفق باشید.
خیلی ممنون.فقط من شنیدم که وقتی یه چیزی رو با کامپوزر نصب میکنی دیگه نمیتونی فولدر ایجاد شده رو همینجوری کپی کنی و انتقال بدی و اگه اینکارو کنی کار نمیکنه.حقیقت داره؟
نه این مورد درست نیست. کامپوزر فقط یک ابزاری هست که یک سری فایل ها رو از سروری دانلود و بعد autoloader کلاس های اون رو ایجاد میکنه و بعد هر جای پروژه میتونید استفاده کنید. پس براحتی میتونید روی لوکال بسازید و به هاست منتقل کنید.
با سلام و وقت بخیر.
ممنون از آموزش خوبتون
من ی صفحه وب دارم ک خودم ساختم و توش چند تا جدول هست و مقادیر داخل این جدول از دیتابیس میاد و با php توی این جدولا رو پر میکنه.
من میخام ی دکمه بزارم و این این صفحه وب رو بصورت pdf یا ورد و یا حتی اکسل بگیرم.
نمیخام مقادبر رو از دیتابیس بگیرم
مقادیر رو از دیتابیس آوردم رو صفحه الان میخام همبن صفحه رو بگیرم .
با دستور شما زدم نشد.
ممنون میشم کمکم کنید
سلام. ممنون. خوشحالم که مفید واقع شده.
شما باید یه صفحه جدا از این کتابخانه ایجاد و یک درخواست رو مثل یک فرم به صفحه مورد نظر برای دریافت فایل pdf ارسال کنید یا اینکه از ajax بهره ببرید.
موفق باشید.
سلام این انگلیسیه اموزشی نداری ک توضیح بده چجوری فارسیش کنیم
سلام . کافیه کتابخانه mpdf رو با استفاده از کامپوزر نصب کنید (آموزش composer)
composer require mpdf/mpdf
و بعد به اینصورت ازش برای ساخت pdf از صفحه وب بهره ببرید.
موفق باشید
سلام . کدی که دادین برای mpdf کار نمیکنه . روش خاصی اگه داره یه مطلب در مورد اونم بذارین تو سایت و لینکشو در پاسخ به این پیامم بفرستین 🙂
ممنون
سلام. احتمالا یکی از موارد رو اشتباه انجام دادید ولی چشم حتما مطلبی هم در مورد همین کتابخانه منتشر یا در بروزرسانی این مطلب اضافه می کنیم.
سلام و خسته نباشید. از زبان فارسی پشتیبانی نمیکنه ؟؟؟
سلام . ممنون . پشتیبانی میشه و یکسری موارد رو باید درنظر بگیرید که کامل در این صفحه قابل مشاهده است.
https://github.com/dompdf/dompdf/wiki/UnicodeHowTo
البته فقط این استایل رو می تونید استفاده کنید ولی راست به چپ کاراکترها تشخیص داده نمیشه :
font-family: DejaVu Sans !important
اگر باز نیاز شما رو رفع نکرد میتونید از کتابخانه https://github.com/mpdf/mpdf هم استفاده کنید که بسیار راحت تر هستش.
موفق باشید.
سلام .
ممنون از این اموزش خوب .
منتهی بعد دانلود pdf لودش نمیکنه ارور میده .
Couldn’t open PDF
Something’s keeping this PDF from opening.
باید چیکار کرد به نظرتون ؟
سلام . خوشحالم که مفید واقع شده . بار دیگر تست شد همچنین مشکلی مشاهده نکردیم .

سورس کد تست شده رو در باکس دانلود, دریافت و مجددا تست کتید و اگر مشکل رفع نشد, کد خود رو کامل قرار بدید تا بررسی و حل بشه.
موفق باشید.
سلام، ممنون از آموزش مفیدتون.
منم سورس برنامه رو دانلود کردم همین مشکل رو دارم..
نسخه php شما که تست میکنین چیه دوست عزیز؟
سلام. ممنون از شما
نسخه ۷٫۱
من از نسخه ۷٫۴ دارم استفاده میکنم،
بعد از فراخوانی صفحه، فایل pdf دانلود میشه ولی موقع باز شدن میگه فایل خراب است…
ممنون میشم راهنمایی کنید..
فایل html تون باید بررسی بشه به چه صورته