mPDF adalah perpustakaan PHP yang menghasilkan file PDF dari HTML yang dikodekan UTF-8.
Ini didasarkan pada FPDF dan HTML2FPDF (lihat KREDIT), dengan sejumlah penyempurnaan. mPDF ditulis oleh Ian Back dan dirilis di bawah lisensi GNU GPL v2.
Jika Anda melihat file ini di beranda repositori mPDF GitHub atau di Packagist, harap perhatikan bahwa cabang repositori default adalah development
yang dapat berbeda dari rilis stabil terakhir.
PHP >=5.6 <7.3.0
didukung untuk mPDF >= 7.0
PHP 7.3
didukung sejak mPDF v7.1.7
PHP 7.4
didukung sejak mPDF v8.0.4
PHP 8.0
didukung sejak mPDF v8.0.10
PHP 8.1
didukung pada mPDF v8.0.13
PHP 8.2
didukung pada mPDF v8.1.3
PHP 8.3
didukung pada mPDF v8.2.1
PHP 8.4
didukung pada mPDF v8.2.5
Ekstensi PHP mbstring
dan gd
harus dimuat.
Ekstensi tambahan mungkin diperlukan untuk beberapa fitur lanjutan seperti zlib
untuk kompresi keluaran dan sumber daya tertanam seperti font, bcmath
untuk menghasilkan kode batang atau xml
untuk konversi kumpulan karakter dan penanganan SVG.
mPDF memiliki beberapa masalah dalam mengambil sumber daya HTTP eksternal dengan server berulir tunggal seperti php -S
. Disarankan server yang tepat seperti nginx (php-fpm) atau Apache.
Pertimbangkan untuk mendukung pengembangan mPDF dengan donasi berapa pun nilainya. Tombol donasi dapat ditemukan di halaman utama dokumentasi.
Metode instalasi resmi adalah melalui composer dan paket packagistnya mpdf/mpdf.
$ composer require mpdf/mpdf
Penggunaan perpustakaan yang paling sederhana (sejak versi 7.0) adalah sebagai berikut:
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Halo dunia!</h1>');$mpdf->Output();
Ini akan menampilkan PDF sebaris ke browser sebagai tipe konten application/pdf
.
Semua arahan konfigurasi dapat diatur oleh parameter $config
konstruktor.
Disarankan untuk mengatur direktori sementara sendiri melalui variabel konfigurasi tempDir
. Direktori harus memiliki izin menulis (disarankan mode 775
) untuk pengguna yang menggunakan mPDF (biasanya cli
, webserver
, fpm
).
Peringatan: mPDF akan membersihkan file-file sementara yang lama di direktori sementara. Pilih jalur yang didedikasikan untuk mPDF saja.
<?php$mpdf = MpdfMpdf baru(['tempDir' => __DIR__ . '/tmp']);
Secara default, direktori sementara akan berada di dalam direktori vendor dan akan memiliki izin menulis dari skrip komposer post_install
.
Untuk informasi lebih lanjut tentang direktori sementara khusus lihat catatan pada Folder untuk file sementara di bagian Instalasi & Pengaturan di manual.
Jika Anda mengalami masalah, silakan baca bagian pemecahan masalah di manual.
mPDF secara keseluruhan adalah perangkat lunak yang cukup kuno. Saat ini, alternatif yang lebih baik tersedia, meskipun tidak ditulis dalam PHP.
Gunakan mPDF jika Anda tidak dapat menggunakan pendekatan non-PHP untuk menghasilkan file PDF atau jika Anda ingin memanfaatkan beberapa manfaat mPDF dibandingkan pendekatan browser – penanganan warna, pra-cetak, dukungan barcode, header dan footer, penomoran halaman, Daftar Isi, dll. . Namun berhati-hatilah karena template HTML/CSS yang disesuaikan untuk mPDF mungkin diperlukan.
Jika Anda mencari dukungan CSS canggih, yang mencerminkan halaman HTML yang ada ke PDF, gunakan Chrome tanpa kepala.
mPDF masih akan diperbarui untuk meningkatkan beberapa kemampuan internal dan untuk mendukung versi PHP yang lebih baru, namun dukungan CSS yang lebih baik dan/atau lebih baru kemungkinan besar tidak akan diterapkan.
Panduan online tersedia di https://mpdf.github.io/.
Untuk pertanyaan umum atau pemecahan masalah, silakan gunakan Diskusi.
Anda juga dapat menggunakan tag mpdf di Stack Overflow karena basis pengguna StackOverflow kemungkinan besar akan menjawab Anda tepat waktu.
Sebelum mengirimkan masalah dan menarik permintaan, harap baca file CONTRIBUTING.md.
Pengujian unit untuk mPDF dilakukan menggunakan PHPUnit.
Untuk memulai, jalankan composer install
dari baris perintah saat berada di direktori root mPDF (Anda perlu menginstal composer terlebih dahulu).
Untuk menjalankan pengujian, jalankan composer test
dari baris perintah saat berada di direktori root mPDF.
Setiap bantuan menulis tes unit untuk mPDF sangat dihargai. Jika Anda ingin membantu, harap dicatat bahwa file PHP apa pun yang terletak di direktori /tests/
akan dimuat secara otomatis saat pengujian unit.