Ga naar inhoud

CodeIgniter API-referentie

Het CodeIgniter-pakket biedt een kleine, op controllers gerichte application programming interface (API). Het bevat een Pdf-bibliotheekwrapper voor één document (Services::pdf() en de globale helper pdf()), responshelpers (PdfResponse) die een opgebouwd document omzetten in een DownloadResponse, de onderliggende Services-factory’s (lettertype- en afbeeldingsregisters, de documentfactory en een optionele signer en time-stamping authority (TSA)-client), de configuratieklasse NextPdf en GeneratePdfJob voor asynchrone generatie op basis van statische builder-callables.

Begin bij het belangrijkste controllerpad: roep Services::pdf() aan (of de helper pdf()), voeg inhoud toe aan $pdf->document() en retourneer $pdf->download('file.pdf'). Dat pad dekt het meest voorkomende geval. De referentietabellen zijn geordend per onderdeel; in Veelvoorkomende taken staan de uitvoerbare vormen voorop.

Dit zijn de meest voorkomende productieflows. Elk voorbeeld is geverifieerd aan de hand van de broncode van nextpdf/codeigniter.

Gebruik het canonieke renderpad om vanuit een controller een downloadbaar Portable Document Format (PDF)-bestand te retourneren:

<?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");
}
}

Wat het doet: het maakt een nieuwe Pdf rond een nieuw Document, schrijft één cel en retourneert een DownloadResponse met een attachment-dispositie en de beveiligingsheaders van het pakket.

Bekijk een PDF inline in de browser met dezelfde wrapper en inline() in plaats van download():

<?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');
}
}

Wat het doet: het gebruikt de globale helper pdf() (gelijk aan Services::pdf()) en retourneert een DownloadResponse met een inline-dispositie, zodat de browser de PDF weergeeft in plaats van deze te downloaden.

Genereer een PDF asynchroon via de queue met GeneratePdfJob en een statische builder:

<?php
declare(strict_types=1);
use NextPDF\CodeIgniter\Jobs\GeneratePdfJob;
service('queue')->push('pdf', GeneratePdfJob::class, [
'builder' => 'App\PdfBuilders\InvoiceBuilder::build',
'outputPath' => WRITEPATH . 'pdfs/invoice-42.pdf',
'context' => ['invoice_id' => 42],
]);

Wat het doet: het plaatst de generatie in de queue. De worker valideert de builder (moet een statische callable App\PdfBuilders\...::method zijn) en het uitvoerpad (moet binnen WRITEPATH/pdfs/ blijven en eindigen op .pdf), bouwt een nieuw document op en slaat het op.

Gebruik deze tabel wanneer je een Pdf-wrapper hebt en de respons- of opslagmethoden daarvan nodig hebt.

SymboolParametersStandaardgedragRetourneertGooit of faalt metOpmerkingen
NextPDF\CodeIgniter\Libraries\Pdf / new Pdf(Document $document)document: nieuw core-document.Wrapt het opgegeven document voor één respons- of opslagbewerking.PdfGeen verwacht.Hergebruik de wrapper niet na uitvoer.
Pdf::document()geen.Retourneert het gewrapte document.NextPDF\Core\DocumentGeen verwacht.Gebruik dit om de core-authoring-API’s aan te roepen.
Pdf::inline(string $filename = 'document.pdf')filename: bestandsnaam van de respons.Gebruikt de inline-dispositie van de browser.CodeIgniter\HTTP\DownloadResponseCore-serialisatiefouten.Delegeert naar PdfResponse::inline().
Pdf::download(string $filename = 'document.pdf')filename: bestandsnaam van de respons.Gebruikt de attachment-dispositie van de browser.DownloadResponseCore-serialisatiefouten.Delegeert naar PdfResponse::download().
Pdf::streamInline(string $filename = 'document.pdf')filename: bestandsnaam van de respons.Biedt API-pariteit met andere framework-pakketten.DownloadResponseCore-serialisatiefouten.CodeIgniter verwerkt binaire uitvoer rechtstreeks.
Pdf::streamDownload(string $filename = 'document.pdf')filename: bestandsnaam van de respons.Biedt API-pariteit met andere framework-pakketten.DownloadResponseCore-serialisatiefouten.Gebruik dezelfde opties voor groottebeheer als bij niet-gestreamde responses.
Pdf::save(string $path)path: doelpad in het bestandssysteem.Schrijft het gewrapte document weg.voidBestandssysteem- of core-schrijffouten.Valideer de opslagroots vóór het opslaan.

Gebruik deze tabel wanneer je een specifieke servicefactory of globale helperfunctie nodig hebt, inclusief het shared-gedrag en het retourtype daarvan.

SymboolParametersStandaardgedragRetourneertGooit of faalt metOpmerkingen
Services::fontRegistry(bool $getShared = true)getShared: CodeIgniter shared-service-vlag.Retourneert een gedeeld register, warmt het op met de geconfigureerde lettertypen en vergrendelt het vervolgens.FontRegistryInterfaceRuntimeException bij ontbrekende extensies of een onveilig lettertypepad.Weigert stream wrappers en null bytes in fontsPath.
Services::imageRegistry(bool $getShared = true)getShared: shared-service-vlag.Retourneert een gedeeld afbeeldingsregister met begrensde least recently used (LRU)-cache.ImageRegistryGeen verwacht.De cachegrootte wordt bepaald door imageCacheMb.
Services::documentFactory(bool $getShared = true)getShared: shared-service-vlag.Retourneert een gedeelde factory die gedeelde registers gebruikt.DocumentFactoryInterfaceFouten bij het opzetten van het register.De factory is herbruikbaar; documenten zijn dat niet.
Services::tsaClient(bool $getShared = true)getShared: shared-service-vlag.Retourneert null wanneer tsa.url leeg is.`TsaClientnull`Hypertext Transfer Protocol (HTTP)-client- of TSA-configuratiefouten.
Services::pdfSigner(bool $getShared = false)getShared: shared-service-vlag.Retourneert null wanneer ondertekenen is uitgeschakeld.`SignerInterfacenull`Certificaatfouten of fouten in het handtekeningniveau.
Services::pdfDocument(bool $getShared = false)getShared: shared-service-vlag.Maakt een nieuw document, past de standaardwaarden toe en configureert optioneel PDF/A of Artisan.DocumentOptionele extensie- of documentconfiguratiefouten.Houd de standaardwaarde false aan voor veiligheid op requestniveau.
Services::pdf(bool $getShared = false)getShared: shared-service-vlag.Maakt een nieuwe Pdf-wrapper rond een nieuw document.NextPDF\CodeIgniter\Libraries\PdfFouten bij het opzetten van het document.Belangrijkste op controllers gerichte service.
Services::eInvoiceEmbedder()geen.Retourneert null, tenzij de Premium Pro e-invoice-embedderklasse bestaat.`EmbedderInterfacenull`Constructiefouten in het optionele pakket.
Services::eInvoiceValidator()geen.Retourneert null, tenzij de Premium Enterprise-validatorklasse bestaat.`ValidatorInterfacenull`Constructiefouten in het optionele pakket.
Services::eInvoiceProfile()geen.Retourneert het EN16931-profiel wanneer Premium Pro is geïnstalleerd.`ProfileInterfacenull`Fouten in het optionele pakket.
Services::schematronRunner()geen.Retourneert null, tenzij de Premium Enterprise Schematron-validator bestaat.`SchematronRunnerInterfacenull`Constructiefouten in het optionele pakket.
Registrar::Autoload()geen.Voegt de pakkethelper toe aan de CodeIgniter-autoloadconfiguratie.arrayGeen verwacht.Schakelt pdf() en pdf_document() in wanneer de module is geladen.
pdf()geen.Roept Services::pdf(false) aan.PdfFouten bij het opzetten van het document.Gemakshelper voor controllers.
pdf_document()geen.Roept Services::pdfDocument(false) aan.DocumentFouten bij het opzetten van het document.Gemakshelper wanneer de core-document-API de voorkeur heeft.

Gebruik deze tabel wanneer je al een Document hebt opgebouwd en de DownloadResponse zelf wilt opbouwen in plaats van de Pdf-wrapper te gebruiken.

SymboolParametersStandaardgedragRetourneertGooit of faalt metOpmerkingen
PdfResponse::inline(Document $document, string $filename = 'document.pdf')document: opgebouwd document; filename: bestandsnaam van de respons.Zorgt dat de extensie .pdf aanwezig is en gebruikt de inline-dispositie.DownloadResponseCore-serialisatiefouten.Voegt het PDF-contenttype en defensieve headers toe.
PdfResponse::download(Document $document, string $filename = 'document.pdf')Hetzelfde als inline; de dispositie is attachment.Zorgt voor de extensie .pdf.DownloadResponseHetzelfde als inline.Gebruik dit voor browserdownloads.
PdfResponse::streamInline(Document $document, string $filename = 'document.pdf')Hetzelfde als inline.Hetzelfde gedrag als inline in CodeIgniter 4 (CI4).DownloadResponseHetzelfde als inline.Bestaat voor API-pariteit tussen frameworks.
PdfResponse::streamDownload(Document $document, string $filename = 'document.pdf')Hetzelfde als download.Hetzelfde gedrag als download in CI4.DownloadResponseHetzelfde als download.Bestaat voor API-pariteit tussen frameworks.

Gebruik deze tabel wanneer je asynchrone generatie inricht en de exacte jobdata-sleutels en het builder-callable-contract nodig hebt.

SymboolParametersStandaardgedragRetourneertGooit of faalt metOpmerkingen
GeneratePdfJob::process()Jobdata-sleutels: builder, outputPath en de optionele context.Gebruikt een lege context-array als die wordt weggelaten.voidInvalidArgumentException bij een onveilige builder of een onveilig uitvoerpad; core-schrijffouten.De builder moet App\PdfBuilders\...\*::method zijn.
Builder-callableDocument $doc, array $context.Geen standaardcontext naast de jobdata.DocumentBuilder-specifieke excepties.Vereist een statische callable, omdat CI4-queue-payloads geserialiseerde data zijn.

Gebruik deze tabel wanneer je standaardwaarden wijzigt voor paginaformaat, paden, ondertekening, TSA of documentmetadata in de configuratieklasse NextPdf.

EigenschapTypeStandaardgedragOpmerkingen
pageFormatstringA4.Stelt het standaardpaginaformaat in.
orientationstringP.Stelt de standaardoriëntatie in.
unitstringmm.Stelt de standaardeenheid in.
pdfa`stringnull`null.
fontsPath / cachePathstringWRITEPATH . 'fonts' en WRITEPATH . 'cache/nextpdf'.Houd paden binnen de door de applicatie beheerde opslag.
signaturearrayUitgeschakeld met niveau B-B.Certificaat, sleutel, wachtwoord, extra certificaten en niveau.
tsaarrayUitgeschakeld wanneer de Uniform Resource Locator (URL) null is; time-out van 30 seconden.Inloggegevens, mutual Transport Layer Security (mTLS)-bestanden, public-key pins en HTTP-beleid.
ocspCachearrayIngeschakeld met een time to live (TTL) van 86400 seconden.Gebruikt door flows voor handtekeningvalidatie wanneer beschikbaar.
preloadFontslist<string>Leeg.Wordt opgewarmd voordat het register wordt vergrendeld.
imageCacheMbint50.Bepaalt de afbeeldingscache voor de levensduur van het proces.
fontCacheLockingbooltrue.Houdt mutaties van het lettertyperegister buiten de afhandeling van requests.
artisanarrayChrome-renderer uitgeschakeld, tenzij geconfigureerd en geïnstalleerd.Wordt toegewezen aan ChromeRendererConfig::fromArray().
defaultsarrayMaker NextPDF, lege auteurwaarde, taal en, standaardmarges en standaardlettertype.Services::pdfDocument() past alleen creator, language en (indien niet leeg) author toe; margin_top/right/bottom/left, font_family, font_size, trim_box en bleed_box zijn gedefinieerde standaardwaarden, maar deze worden momenteel niet toegepast.
  • GeneratePdfJob beperkt de uitvoer tot WRITEPATH . 'pdfs' en vereist .pdf.
  • Builder-callables buiten App\PdfBuilders worden geweigerd om willekeurige code-uitvoering vanuit gewijzigde queue-payloads te voorkomen.
  • Gebruik service('pdf') of de pakkethelper voor controllerflows; gebruik queue-jobs voor langlopende generatie.