mPDF เป็นไลบรารี PHP ที่สร้างไฟล์ PDF จาก HTML ที่เข้ารหัส UTF-8
มันขึ้นอยู่กับ FPDF และ HTML2FPDF (ดูเครดิต) พร้อมการปรับปรุงหลายประการ mPDF เขียนโดย Ian Back และเผยแพร่ภายใต้ลิขสิทธิ์ GNU GPL v2
หากคุณกำลังดูไฟล์นี้บนหน้าแรกของพื้นที่เก็บข้อมูล mPDF GitHub หรือบน Packagist โปรดทราบว่าสาขาพื้นที่เก็บข้อมูลเริ่มต้นคือ development
ซึ่งอาจแตกต่างจากเวอร์ชันเสถียรล่าสุด
รองรับ PHP >=5.6 <7.3.0
สำหรับ mPDF >= 7.0
รองรับ PHP 7.3
ตั้งแต่ mPDF v7.1.7
รองรับ PHP 7.4
ตั้งแต่ mPDF v8.0.4
รองรับ PHP 8.0
ตั้งแต่ mPDF v8.0.10
รองรับ PHP 8.1
ตั้งแต่ mPDF v8.0.13
รองรับ PHP 8.2
ตั้งแต่ mPDF v8.1.3
รองรับ PHP 8.3
ตั้งแต่ mPDF v8.2.1
รองรับ PHP 8.4
ตั้งแต่ mPDF v8.2.5
ต้องโหลดส่วนขยาย PHP mbstring
และ gd
อาจจำเป็นต้องมีส่วนขยายเพิ่มเติมสำหรับคุณสมบัติขั้นสูงบางอย่าง เช่น zlib
สำหรับการบีบอัดเอาต์พุตและทรัพยากรที่ฝังไว้ เช่น แบบอักษร bcmath
สำหรับสร้างบาร์โค้ด หรือ xml
สำหรับการแปลงชุดอักขระและการจัดการ SVG
mPDF มีปัญหาบางอย่างในการดึงข้อมูลทรัพยากร HTTP ภายนอกด้วยเซิร์ฟเวอร์แบบเธรดเดี่ยว เช่น php -S
แนะนำให้ใช้เซิร์ฟเวอร์ที่เหมาะสม เช่น nginx (php-fpm) หรือ Apache
พิจารณาสนับสนุนการพัฒนา mPDF ด้วยการบริจาคมูลค่าใดๆ ก็ตาม ปุ่มบริจาคสามารถพบได้ในหน้าหลักของเอกสารประกอบ
วิธีการติดตั้งอย่างเป็นทางการคือผ่านผู้แต่งและแพ็คเกจแพ็คเกจ mpdf/mpdf
$ composer require mpdf/mpdf
การใช้งานไลบรารีที่ง่ายที่สุด (ตั้งแต่เวอร์ชัน 7.0) จะเป็นดังนี้:
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>สวัสดีชาวโลก!</h1>');$mpdf->Output();
สิ่งนี้จะส่งออก PDF อินไลน์ไปยังเบราว์เซอร์เป็น application/pdf
Content-type
คำสั่งการกำหนดค่าทั้งหมดสามารถตั้งค่าได้โดยพารามิเตอร์ $config
ของตัวสร้าง
ขอแนะนำให้ตั้งค่าไดเร็กทอรีชั่วคราวของตนเองผ่านตัวแปรการกำหนดค่า tempDir
ไดเรกทอรีต้องมีสิทธิ์ในการเขียน (แนะนำให้ใช้โหมด 775
) สำหรับผู้ใช้ที่ใช้ mPDF (โดยทั่วไปคือ cli
, webserver
, fpm
)
คำเตือน: mPDF จะล้างไฟล์ชั่วคราวเก่าในไดเร็กทอรีชั่วคราว เลือกเส้นทางเฉพาะสำหรับ mPDF เท่านั้น
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
ตามค่าเริ่มต้น ไดเร็กทอรีชั่วคราวจะอยู่ภายในไดเร็กทอรีผู้ขาย และจะมีสิทธิ์ในการเขียนจากสคริปต์ผู้แต่ง post_install
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไดเร็กทอรีชั่วคราวแบบกำหนดเอง โปรดดูหมายเหตุในโฟลเดอร์สำหรับไฟล์ชั่วคราวในส่วนการติดตั้งและการตั้งค่าในคู่มือ
หากคุณประสบปัญหา โปรดอ่านหัวข้อการแก้ไขปัญหาในคู่มือ
mPDF โดยรวมเป็นซอฟต์แวร์ที่ค่อนข้างล้าสมัย ปัจจุบันนี้ มีทางเลือกอื่นที่ดีกว่า แม้ว่าจะไม่ได้เขียนด้วย PHP ก็ตาม
ใช้ mPDF หากคุณไม่สามารถใช้แนวทางที่ไม่ใช่ PHP เพื่อสร้างไฟล์ PDF ได้ หรือหากคุณต้องการใช้ประโยชน์จาก mPDF เหนือแนวทางเบราว์เซอร์ เช่น การจัดการสี การพิมพ์ล่วงหน้า การรองรับบาร์โค้ด ส่วนหัวและส่วนท้าย การกำหนดหมายเลขหน้า TOC ฯลฯ แต่ระวังว่าอาจจำเป็นต้องใช้เทมเพลต HTML/CSS ที่ออกแบบมาสำหรับ mPDF
หากคุณกำลังมองหาการรองรับ CSS ที่ล้ำสมัย การมิเรอร์หน้า HTML ที่มีอยู่เป็น PDF ให้ใช้ Chrome ที่ไม่มีส่วนหัว
mPDF จะยังคงได้รับการอัปเดตเพื่อปรับปรุงความสามารถภายในบางอย่าง และเพื่อรองรับ PHP เวอร์ชันใหม่กว่า แต่การรองรับ CSS ที่ดีกว่าและ/หรือใหม่กว่านั้นมักจะไม่มีการใช้งาน
คู่มือออนไลน์มีอยู่ที่ https://mpdf.github.io/
สำหรับคำถามทั่วไปหรือการแก้ไขปัญหา โปรดใช้การสนทนา
คุณยังสามารถใช้แท็ก mpdf ที่ Stack Overflow ได้ เนื่องจากฐานผู้ใช้ StackOverflow มีแนวโน้มที่จะตอบคุณอย่างทันท่วงที
ก่อนที่จะส่งปัญหาและคำขอดึง โปรดอ่านไฟล์ CONTRIBUTING.md
การทดสอบหน่วยสำหรับ mPDF ทำได้โดยใช้ PHPUnit
ในการเริ่มต้น ให้รัน composer install
จากบรรทัดคำสั่งขณะอยู่ในไดเร็กทอรีราก mPDF (คุณจะต้องติดตั้ง composer ก่อน)
หากต้องการดำเนินการทดสอบ ให้รัน composer test
จากบรรทัดคำสั่งขณะอยู่ในไดเร็กทอรีราก mPDF
ขอขอบคุณความช่วยเหลือในการเขียนการทดสอบหน่วยสำหรับ mPDF เป็นอย่างยิ่ง หากคุณต้องการความช่วยเหลือ โปรดทราบว่าไฟล์ PHP ใดๆ ที่อยู่ในไดเร็กทอรี /tests/
จะถูกโหลดอัตโนมัติเมื่อทำการทดสอบหน่วย