Mulai cepat — PDF pertama Anda di CodeIgniter 4
Gambaran singkat
Bagian berjudul “Gambaran singkat”Ambil layanan pdf di dalam controller, tambahkan konten ke dokumen, lalu kembalikan respons unduhan. Dengan begitu, Anda mendapatkan berkas Portable Document Format (PDF) hanya dalam tiga baris dan satu respons Hypertext Transfer Protocol (HTTP).
Pasang
Bagian berjudul “Pasang”composer require nextpdf/codeigniterUntuk persyaratan dan pemeriksaan deteksi paket, lihat /integrations/codeigniter/install/.
Langkah 1 — Buat controller
Bagian berjudul “Langkah 1 — Buat controller”Buat controller yang mengembalikan PDF. Pustaka Pdf membuat dokumen baru untuk Anda, lalu mengubah dokumen tersebut menjadi DownloadResponse milik CodeIgniter.
Setiap contoh PHP di halaman ini meletakkan declare(strict_types=1); setelah tag pembuka, di baris tersendiri (PSR-12 §x1.x3.p11; §x1.x3.p34).
<?php
declare(strict_types=1);
namespace App\Controllers;
use CodeIgniter\HTTP\DownloadResponse;use NextPDF\CodeIgniter\Config\Services;
final class InvoiceController extends BaseController{ public function download(int $id): DownloadResponse { $pdf = Services::pdf();
$pdf->document()->addPage(); $pdf->document()->cell(0, 10, "Invoice #{$id}");
return $pdf->download("invoice-{$id}.pdf"); }}Services::pdf() mengembalikan instance Pdf baru. Rangkaian pengujian fungsional paket ini juga memverifikasi bahwa dokumen yang mendasarinya selalu baru untuk setiap pemanggilan. Pemanggilan download() menghasilkan DownloadResponse dengan disposisi attachment.
Langkah 2 — Tambahkan rute
Bagian berjudul “Langkah 2 — Tambahkan rute”Petakan rute ke metode controller di app/Config/Routes.php:
$routes->get('invoices/(:num)/pdf', 'InvoiceController::download/$1');Langkah 3 — Minta PDF
Bagian berjudul “Langkah 3 — Minta PDF”Buka /invoices/42/pdf. Peramban Anda mengunduh invoice-42.pdf. Responsnya menyertakan Content-Type: application/pdf dan header hardening respons dari paket ini.
Variasi — pratinjau inline dengan helper
Bagian berjudul “Variasi — pratinjau inline dengan helper”Helper global pdf() setara dengan Services::pdf(). Panggil inline() untuk menampilkan PDF di peramban alih-alih mengunduhnya:
<?php
declare(strict_types=1);
namespace App\Controllers;
use CodeIgniter\HTTP\DownloadResponse;
final class ReportController extends BaseController{ public function preview(): DownloadResponse { $pdf = pdf();
$pdf->document()->addPage(); $pdf->document()->cell(0, 10, 'Monthly Report');
return $pdf->inline('report.pdf'); }}Variasi — dokumen langsung dan PdfResponse
Bagian berjudul “Variasi — dokumen langsung dan PdfResponse”Jika Anda sudah memiliki Document, buat responsnya langsung dengan PdfResponse. Helper pdf_document() memberi Anda dokumen baru yang telah dikonfigurasi sebelumnya.
<?php
declare(strict_types=1);
namespace App\Controllers;
use CodeIgniter\HTTP\DownloadResponse;use NextPDF\CodeIgniter\Http\PdfResponse;
final class DocumentController extends BaseController{ public function generate(): DownloadResponse { $document = pdf_document(); $document->addPage(); $document->cell(0, 10, 'Hello World');
return PdfResponse::download($document, 'hello.pdf'); }}Apa yang Anda buat
Bagian berjudul “Apa yang Anda buat”- Sebuah controller yang mengambil layanan NextPDF dan mengembalikan
DownloadResponsebertipe. - Dua titik masuk yang setara: kelas
Servicesdan helperpdf()/pdf_document(). - Respons dengan
application/pdf, header keamanan dari paket, dan nama berkas yang telah disanitasi.
Langkah selanjutnya
Bagian berjudul “Langkah selanjutnya”Agar pengenalan awal ini tetap fokus, tutorial ini tidak menyertakan penanganan kesalahan. Untuk controller produksi dengan dependency injection, penanganan eksepsi, observabilitas, dan pekerjaan dalam antrean, lanjutkan ke /integrations/codeigniter/production-usage/. Halaman tersebut menunjukkan varian yang telah diperkuat.
Kesesuaian
Bagian berjudul “Kesesuaian”- Tag pembuka PHP di baris tersendiri di dalam contoh kode (PSR-12 Extended Coding Style §x1.x3.p11).
- Format pernyataan declare(strict_types=1) di dalam contoh kode (PSR-12 Extended Coding Style §x1.x3.p34).
Lihat juga
Bagian berjudul “Lihat juga”- /integrations/codeigniter/overview/ — seluruh cakupan application programming interface (API).
- /integrations/codeigniter/configuration/ — ubah nilai standar dan path.
- /integrations/codeigniter/production-usage/ — controller berkualitas produksi dan pekerjaan asinkron.
- /integrations/codeigniter/troubleshooting/ — saat sebuah rute tidak mengembalikan PDF.