Hızlı başlangıç — CodeIgniter 4 ile ilk PDF'iniz
Bir bakışta
“Bir bakışta” başlıklı bölümBir denetleyicide pdf hizmetini çözümleyin, oluşturduğu belgeye içerik ekleyin ve bir indirme yanıtı döndürün. Böylece üç satır ve tek bir Hypertext Transfer Protocol (HTTP) yanıtıyla bir Portable Document Format (PDF) dosyası elde edersiniz.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/codeigniterGereksinimler ve paket keşfi denetimleri için /integrations/codeigniter/install/ sayfasına bakın.
1. adım — bir denetleyici oluşturun
“1. adım — bir denetleyici oluşturun” başlıklı bölümPDF döndüren bir denetleyici oluşturun. Pdf kitaplığı sizin için yeni bir belge oluşturur, ardından bu belgeyi bir CodeIgniter DownloadResponse nesnesine dönüştürür.
Bu sayfadaki her PHP örneği, açılış etiketinden sonra declare(strict_types=1); ifadesini kendi satırına yerleştirir (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() yeni bir Pdf döndürür. Paketin işlevsel testleri, altta yatan belgenin de her çağrıda yeni olduğunu doğrular. download() çağrısı bir DownloadResponse yanıtı üretir; bu yanıtın düzeni attachment biçimindedir.
2. adım — bir rota ekleyin
“2. adım — bir rota ekleyin” başlıklı bölümBir rotayı app/Config/Routes.php dosyasındaki denetleyici metoduna eşleyin:
$routes->get('invoices/(:num)/pdf', 'InvoiceController::download/$1');3. adım — PDF’i isteyin
“3. adım — PDF’i isteyin” başlıklı bölümŞu adresi açın: /invoices/42/pdf. Tarayıcınız invoice-42.pdf dosyasını indirir. Yanıt, Content-Type: application/pdf başlığını ve paketin yanıtı sıkılaştıran başlıklarını içerir.
Varyasyon — yardımcı işlevle satır içi önizleme
“Varyasyon — yardımcı işlevle satır içi önizleme” başlıklı bölümGenel pdf() yardımcı işlevi Services::pdf() ile eşdeğerdir. PDF’i indirmek yerine tarayıcıda göstermek için inline() işlevini çağırın:
<?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'); }}Varyasyon — doğrudan belge ve PdfResponse
“Varyasyon — doğrudan belge ve PdfResponse” başlıklı bölümHalihazırda bir Document nesneniz varsa, yanıtı doğrudan PdfResponse ile oluşturun. pdf_document() yardımcı işlevi size önceden yapılandırılmış yeni bir belge verir.
<?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'); }}Oluşturduklarınız
“Oluşturduklarınız” başlıklı bölüm- Bir NextPDF hizmetini çözümleyen ve tipli bir
DownloadResponsedöndüren bir denetleyici. - İki eşdeğer giriş noktası:
Servicessınıfı vepdf()/pdf_document()yardımcı işlevleri. - Şunları içeren bir yanıt:
application/pdftürü, paketin güvenlik başlıkları ve temizlenmiş bir dosya adı.
Sonraki adımlar
“Sonraki adımlar” başlıklı bölümBu ilk tanıtımın odağını korumak için bu eğitimde hata işleme ele alınmaz. Bağımlılık enjeksiyonu, istisna işleme, gözlemlenebilirlik ve kuyruk işi içeren üretim denetleyicileri için şu sayfaya geçin: /integrations/codeigniter/production-usage/. Bu sayfada sıkılaştırılmış varyantlar gösterilir.
Uygunluk
“Uygunluk” başlıklı bölüm- Kod örneklerinde PHP açılış etiketinin kendi satırında olması (PSR-12 Extended Coding Style §x1.x3.p11).
- Kod örneklerinde declare(strict_types=1) ifade biçimi (PSR-12 Extended Coding Style §x1.x3.p34).
Ayrıca bkz.
“Ayrıca bkz.” başlıklı bölüm- /integrations/codeigniter/overview/ — application programming interface (API) yüzeyinin tamamı.
- /integrations/codeigniter/configuration/ — varsayılanları ve yolları değiştirin.
- /integrations/codeigniter/production-usage/ — üretim düzeyinde denetleyiciler ve eşzamansız işler.
- /integrations/codeigniter/troubleshooting/ — bir rota hiç PDF döndürmüyorsa.