Dokumen ini mengacu pada FPDI 2. Versi 1 tidak digunakan lagi dan pengembangannya dihentikan.
FPDI adalah kumpulan kelas PHP yang memfasilitasi pengembang untuk membaca halaman dari dokumen PDF yang ada dan menggunakannya sebagai templat di FPDF, yang dikembangkan oleh Olivier Plathey. Selain salinan FPDF, FPDI tidak memerlukan ekstensi PHP khusus.
FPDI juga dapat digunakan sebagai ekstensi untuk TCPDF atau tFPDF.
Karena FPDI dapat digunakan dengan FPDF, TCPDF atau tFPDF kami belum menambahkan ketergantungan tetap pada file composer.json utama. Anda perlu menambahkan sendiri ketergantungan ke perpustakaan pembuatan PDF pilihan Anda.
Untuk menggunakan FPDI dengan FPDF, sertakan yang berikut ini di file composer.json Anda:
{"membutuhkan": {"setasign/fpdf": "1.8.*","setasign/fpdi": "^2.5"} }
Jika Anda ingin menggunakan TCPDF, Anda harus memperbarui composer.json Anda ke:
{"membutuhkan": {"tecnickcom/tcpdf": "6.6.*","setasign/fpdi": "^2.5"} }
Jika Anda ingin menggunakan tFPDF, Anda harus memperbarui composer.json ke:
{"membutuhkan": {"setasign/tfpdf": "1.33.*","setasign/fpdi": "^2.3"} }
Jika Anda tidak menggunakan composer, cukup minta autoload.php di folder /src:
require_once('src/autoload.php');
Jika Anda menerapkan autoloader PSR-4, cukup daftarkan jalur src sebagai berikut:
$loader = new ContohPsr4AutoloaderClass;$loader->register();$loader->addNamespace('setasignFpdi', 'path/to/src/');
Versi 2 adalah penulisan ulang lengkap dari awal FPDI yang dilengkapi dengan:
Kode dengan spasi nama
Basis kode dan gaya yang bersih dan terkini
Pemuatan otomatis yang kompatibel dengan PSR-4
Peningkatan kinerja hingga 100%
Konsumsi memori lebih sedikit
Dukungan asli untuk membaca PDF dari string atau sumber daya aliran
Dukungan untuk dokumen dengan data "tidak valid" sebelum header filenya
Penyelesaian pohon halaman yang dioptimalkan
Penggunaan pengecualian individu
Beberapa jenis tes (tes unit, fungsional dan visual)
Kami mencoba menjaga metode utama dan alur kerja logis tetap sama seperti di versi 1 tetapi harap perhatikan bahwa ada perubahan yang tidak kompatibel yang harus Anda pertimbangkan saat memperbarui ke versi 2:
Anda perlu memuat kode menggunakan file src/autoload.php
alih-alih classes/FPDI.php
.
Kelas dan sifat sekarang diberi spasi nama: setasignFpdi
Batas halaman yang diawali dengan garis miring, seperti /MediaBox
, tidak didukung lagi. Hapus garis miring atau gunakan konstanta PdfReaderPageBoundaries
.
Parameter $x, $y, $width dan $height dari metode useTemplate()
atau getTemplateSize()
sekarang memiliki nilai default yang lebih logis dan benar. Meneruskan 0
sebagai lebar atau tinggi akan menghasilkan InvalidArgumentException
sekarang.
Nilai kembalian getTemplateSize()
telah berubah menjadi array dengan lebih banyak tombol bicara dan dapat digunakan kembali: Gunakan width
alih-alih w
dan height
alih-alih h
.
Jika Anda ingin menggunakan FPDI dengan TCPDF, Anda perlu memfaktorkan ulang kode Anda untuk menggunakan kelas TcpdfFpdi
(sejak 2.1; sebelumnya TcpdfFpdi
) alih-alih FPDI
.
Contoh sederhana, yang mengimpor satu halaman dan menempatkannya ke halaman yang baru dibuat:
AddPage();// set file sumber$pdf->setSourceFile("Fantastic-Speaker.pdf");// impor halaman 1$tplId = $pdf->importPage(1);// gunakan halaman yang diimpor dan letakkan di titik 10,10 dengan lebar 100 mm$pdf->useTemplate($tplId, 10, 10, 100);$pdf->Output();
Dokumentasi lengkap pengguna akhir dan referensi API tersedia di sini.