Artisan API-referentie
In een oogopslag
Sectie met titel “In een oogopslag”Het Artisan-pakket (nextpdf/artisan) biedt twee verwante API-groepen. De Chrome-rendering-API’s — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator en BrowserPool — zetten een Hypertext Markup Language (HTML)-fragment om in een door Chrome geproduceerd Portable Document Format (PDF)-bestand. De parser- en importer-API’s — PdfReader, PageImporter, ImportedFormXObject en ondersteunende tokenizer- en cross-referentieklassen — sluiten die gerenderde uitvoer weer in een NextPDF-document in als een Form XObject waarvan de tekst selecteerbaar blijft.
Begin hier: als je alleen een PDF uit HTML nodig hebt, gebruik je dit pakket zelden rechtstreeks. Koppel een ChromeRendererConfig aan een NextPDF Document en roep writeHtmlChrome() aan; zie de quickstart. Gebruik de onderstaande klassen wanneer je een renderer in een worker insluit of parserdiagnostiek uitvoert. Het eerste voorbeeld onder Veelvoorkomende taken toont het pad met één aanroep.
Veelvoorkomende taken
Sectie met titel “Veelvoorkomende taken”De drie onderstaande workflows dekken vrijwel al het productiegebruik, van de high-level aanroep tot de expliciete render-en-importpijplijn. Elk voorbeeld is geverifieerd tegen nextpdf-Artisan/src (en de README.md / ci/tests/ van het pakket).
Render een HTML-fragment naar een PDF met selecteerbare tekst met de canonieke aanroep.
<?php
declare(strict_types=1);
use NextPDF\Core\Document;use NextPDF\Artisan\ChromeRendererConfig;
require __DIR__ . '/vendor/autoload.php';
$config = new ChromeRendererConfig(chromeBinaryPath: '/usr/bin/chromium');
$doc = Document::createStandalone();$doc->setChromeRendererConfig($config);$doc->addPage();$doc->writeHtmlChrome('<div style="display:flex;gap:20px"><h2>Revenue</h2><p>$124,500</p></div>');$doc->save('/tmp/report.pdf');Wat het doet: Chrome maakt de lay-out van het fragment. De bridge neemt pagina 0 op als een Form XObject, zodat de tekst selecteerbaar blijft. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static past de hoogte automatisch aan wanneer $height gelijk is aan null.
Voer de renderer uit en importeer de pagina zelf wanneer je de expliciete pijplijn achter writeHtmlChrome() nodig hebt, zoals in workers of aangepaste plaatsingsflows.
<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeHtmlRenderer;use NextPDF\Artisan\ChromeRendererConfig;use NextPDF\Artisan\ImportedFormXObject;use NextPDF\Artisan\PageImporter;use NextPDF\Parser\PdfReader;
$renderer = new ChromeHtmlRenderer(new ChromeRendererConfig(renderTimeout: 30));
try { $result = $renderer->render($html, widthPt: 595.28);
$reader = new PdfReader($result->getPdfData()); $reader->parse();
$form = (new PageImporter())->import($reader);} finally { $renderer->close();}Wat het doet: het rendert PDF-bytes via Chrome, parseert ze en importeert pagina 0 naar een ImportedFormXObject die je kunt plaatsen. Roep altijd close() aan op de renderer om het Chrome-proces vrij te geven.
Stel de configuratie samen vanuit een array in framework-stijl voor config/*.php of bundleparameters in plaats van hardgecodeerde constructorargumenten.
<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeRendererConfig;
$config = ChromeRendererConfig::fromArray([ 'chrome_binary' => '/usr/bin/chromium', 'render_timeout' => 45, 'max_html_size' => 2_000_000, 'no_sandbox' => false,]);Wat het doet: het wijst een configuratie-array in snake_case toe aan de constructor. Niet-ingestelde sleutels gebruiken standaardwaarden, en chrome_binary wordt alleen toegepast wanneer de waarde een niet-lege string is.
Chrome-renderer
Sectie met titel “Chrome-renderer”Deze typen verzorgen het weergavepad. Bouw een ChromeRendererConfig, geef die door aan een ChromeHtmlRenderer en roep vervolgens render() aan om een ChromeRenderResult te krijgen.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false) | Binair pad, time-out, Cascading Style Sheets (CSS), HTML-groottelimiet, sandboxvlag. | Detecteert Chrome automatisch wanneer het binaire pad null is; de sandbox blijft ingeschakeld tenzij die wordt uitgeschakeld. | ChromeRendererConfig | Geen verwacht. | Stel noSandbox alleen in wanneer de runtime dit vereist. |
ChromeRendererConfig::fromArray(array $config) | chrome_binary, render_timeout, default_css, max_html_size, no_sandbox. | Ontbrekende waarden gebruiken de standaardwaarden van de constructor. | ChromeRendererConfig | Bij typeconflicten wordt voor optionele sleutels op standaardwaarden teruggevallen. | Komt overeen met configuratie-arrays in framework-stijl. |
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null) | Configuratie, optionele logger, optioneel HTML-beleid op de parselaag. | Gebruikt DefaultHtmlSecurityPolicy wanneer er geen beleid wordt opgegeven. | ChromeHtmlRenderer | Chrome-installatiefouten treden op bij de eerste weergave. | De renderer beheert een browserpool tot close(). |
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0) | html: invoerfragment; widthPt: papierbreedte; heightPt: doelhoogte of automatisch. | Berekent de inhoudshoogte automatisch wanneer heightPt <= 0. | ChromeRenderResult | ChromeRenderException; mislukte validatie van de HTML-grootte. | Blokkeert netwerkverzoeken voor subbronnen via het Chrome DevTools Protocol (CDP). |
ChromeHtmlRenderer::getHtmlSecurityPolicy() | geen. | Retourneert het geconfigureerde beleid van de parselaag. | HtmlSecurityPolicyInterface | Geen verwacht. | Vult de Chrome-besturingselementen op transportniveau aan. |
ChromeHtmlRenderer::close() | geen. | Sluit de browserpool en wist deze. | void | Fouten bij het afsluiten van de browser kunnen vanuit de onderliggende bibliotheek naar voren komen. | Aanroepen tijdens het afsluiten van de worker. |
HTML-beveiligingsbeleid
Sectie met titel “HTML-beveiligingsbeleid”Gebruik deze API’s wanneer je externe HTML vóór de weergave zelf wilt valideren en omhullen, in plaats van alleen ChromeHtmlRenderer::render() aan te roepen; die methode roept ze al aan.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
ChromeSecurityPolicy::validate(string $html, int $maxSize) | HTML-invoer en maximale grootte in bytes. | Accepteert invoer alleen wanneer de grootte binnen de limiet valt en er geen niet-toegestane constructies zijn. | void | ChromeRenderException of een validatie-uitzondering. | Voer dit uit vóór de browserweergave wanneer je externe HTML accepteert. |
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '') | HTML-fragment, viewportbreedte, optionele standaard-CSS. | Produceert een volledig weergavedocument rond het fragment. | string | Validatie- of stringconstructiefouten. | Houdt renderer-specifieke CSS gescheiden van de applicatie-HTML. |
Resultaat- en conversiehelpers
Sectie met titel “Resultaat- en conversiehelpers”Gebruik deze helpers om een renderresultaat (ChromeRenderResult) te lezen en bij het bepalen van een viewportformaat of het berekenen van de hoogte te converteren tussen PDF-punten en Chrome CSS-pixels.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx) | Ruwe PDF-bytes, breedte, hoogte, gemeten inhoudshoogte. | Valideert niets buiten de getypeerde constructoreigenschappen. | ChromeRenderResult | Geen verwacht. | Doorgaans geretourneerd door ChromeHtmlRenderer::render(). |
ChromeRenderResult::getPdfData() | geen. | Retourneert ruwe, door Chrome geproduceerde PDF-bytes. | string | Geen verwacht. | Gebruik dit met PdfReader en PageImporter bij het insluiten. |
ChromeRenderResult::getWidthPt() | geen. | Retourneert de gevraagde breedte in punten. | float | Geen verwacht. | Gebruikt om het geïmporteerde form-object te dimensioneren. |
ChromeRenderResult::getHeightPt() | geen. | Retourneert de berekende of gevraagde hoogte in punten. | float | Geen verwacht. | De automatische hoogte omvat een buffer voor de printlay-out. |
ViewportCalculator::pointsToCssPx(float $pt) | pt: PDF-punten. | Converteert op basis van 96 CSS px per 72 PDF-punten. | int | Geen verwacht. | Afgerond voor de Chrome-viewportbreedte. |
ViewportCalculator::cssPxToPoints(float $px) | px: CSS-pixels. | Converteert op basis van 72 PDF-punten per 96 CSS px. | float | Geen verwacht. | Gebruikt voor de berekening van de automatische hoogte. |
Import- en parser-API’s
Sectie met titel “Import- en parser-API’s”Dit is het importpad. Parseer Chrome PDF-bytes met PdfReader en geef de reader vervolgens door aan PageImporter::import() om een insluitbare pagina te krijgen; de overige methoden van PdfReader ondersteunen diagnostiek.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
new PdfReader(string $data) | data: volledige PDF-bytes. | De parser wordt pas uitgevoerd bij parse(). | PdfReader | Geen verwacht. | Ontworpen voor door Chrome gegenereerde PDF’s. |
PdfReader::parse() | geen. | Parseert de cross-referentieketen (xref) en de trailer. | void | PdfParseException voor een ongeldige PDF-structuur. | Moet worden aangeroepen vóór toegang tot objecten of pagina’s. |
PdfReader::getObject(int $objNum) | Objectnummer. | Lost het geparseerde object op aan de hand van het nummer. | PdfObject | PdfParseException wanneer het object ontbreekt of misvormd is. | Gebruik dit na parse(). |
PdfReader::getTrailer() | geen. | Retourneert de geparseerde trailer-dictionary. | array | PdfParseException wanneer trailergegevens niet beschikbaar zijn. | Gebruikt door diagnostiek en revisieanalyse. |
PdfReader::getObjectNumbers() | geen. | Retourneert de geparseerde objectnummers. | array | Geen verwacht na parsing. | Nuttig voor importerdiagnostiek. |
PdfReader::getPage(int $pageIndex) | pageIndex: nulgebaseerde pagina-index. | Geen impliciete parsing. | PdfObject | PdfParseException wanneer de pagina ontbreekt of buiten bereik ligt. | De importer gebruikt standaard pagina 0. |
PdfReader::getPageContentStream(PdfObject $page) | page: geparseerd pagina-object. | Lost de inhoudsstream op. | string | PdfParseException voor ongeldige streams. | Een lege stream veroorzaakt een fout in de importer. |
PdfReader::getPageResources(PdfObject $page) | page: geparseerd pagina-object. | Lost de paginabronnen op. | array | PdfParseException voor ongeldige bronnen. | De brondictionary wordt samen met het form-object ingesloten. |
PdfReader::getPageMediaBox(PdfObject $page) | page: geparseerd pagina-object. | Valt terug op A4-achtige afmetingen wanneer afwezig. | array | Parserfouten. | Retourneert coördinaten in de PDF-ruimte. |
PdfReader::resolveRef(mixed $value) | Geparseerde waarde. | Lost objectreferenties recursief op waar van toepassing. | mixed | PdfParseException voor ongeldige referenties. | Interne helper voor importerworkflows. |
PdfReader::collectPageResources(PdfObject $page) | page: geparseerd pagina-object. | Doorloopt de referenties van paginabronnen. | array | Parserfouten. | Gebruikt om afhankelijke objecten samen met geïmporteerde pagina’s in te sluiten. |
PdfReader::getRevisionCount() | geen. | Telt de geparseerde incrementele revisies. | int | Geen verwacht na parsing. | Nuttig voor ondertekende of incrementeel bijgewerkte PDF’s. |
PdfReader::getRevisionXRef(int $index) | Nulgebaseerde revisie-index. | Retourneert één revisie-xref-tabel. | RevisionXRefTable | PdfParseException voor een ongeldige index. | Gebruik dit voor laagniveau-revisiediagnostiek. |
PdfReader::getRevisions() | geen. | Retourneert alle geparseerde revisie-xref-tabellen. | array | Geen verwacht na parsing. | Weergave van de parserstatus voor alleen-lezen gebruik. |
PageImporter::import(PdfReader $reader, int $pageIndex = 0) | Geparseerde reader en nulgebaseerde pagina-index. | Importeert de eerste pagina wanneer weggelaten. | ImportedFormXObject | PdfParseException wanneer de pagina niet kan worden geëxtraheerd. | Verzamelt de inhoudsstream, media box, bronnen en gerefereerde objecten. |
Parser-ondersteuningsobjecten
Sectie met titel “Parser-ondersteuningsobjecten”Deze value-objecten en helpers worden door de parser geretourneerd of intern gebruikt. Gebruik ze wanneer je geïmporteerde objecten, bronnen, streams of revisietabellen inspecteert.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict) | Gedecodeerde inhoudsstream, media box, ingesloten objecten, brondictionary. | Slaat een op zichzelf staande geïmporteerde form-payload op. | ImportedFormXObject | Geen verwacht. | Doorgaans geretourneerd door PageImporter::import(). |
ImportedFormXObject::getWidth() | geen. | Retourneert de breedte van de geïmporteerde form in punten. | float | Geen verwacht. | Gebruik dit bij het plaatsen van Chrome-uitvoer op een pagina. |
ImportedFormXObject::getHeight() | geen. | Retourneert de hoogte van de geïmporteerde form in punten. | float | Geen verwacht. | Renderresultaten met automatische hoogte worden via deze waarde doorgegeven. |
ImportedFormXObject::getEmbeddedObjects() | geen. | Retourneert de objecten die de geïmporteerde form nodig heeft. | array | Geen verwacht. | Writer-code gebruikt deze objecten om bronnen te behouden. |
ImportedFormXObject::getResourcesDict() | geen. | Retourneert de geïmporteerde brondictionary. | array | Geen verwacht. | Gebruikt bij het opbouwen van de form XObject. |
ImportedFormXObject::getMediaBox() | geen. | Retourneert de geïmporteerde media box. | array | Geen verwacht. | Gebruik dit voor plaatsingsdiagnostiek. |
ImportedFormXObject::getContentStream() | geen. | Retourneert de inhoudsstream van de geïmporteerde pagina. | string | Geen verwacht. | Bedoeld voor writer/import-integratie. |
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null) | Objectnummer, generatie, geparseerde dictionary, optionele streambytes, optionele gedecodeerde stream, optionele ruwe dictionarybytes. | Slaat de geparseerde objectstatus op. | PdfObject | Geen verwacht. | Aangemaakt door interne onderdelen van de parser. |
PdfObject::getRawDictionaryBytes() | geen. | Retourneert de oorspronkelijke dictionarybytes wanneer beschikbaar. | `string | null` | Geen verwacht. |
PdfObject::getRawStreamData() | geen. | Retourneert niet-gedecodeerde streambytes wanneer beschikbaar. | `string | null` | Geen verwacht. |
PdfObject::getDictionary() | geen. | Retourneert de geparseerde dictionary-items. | array | Geen verwacht. | Weergave van de parser voor alleen-lezen gebruik. |
PdfObject::get(string $key) | Dictionarysleutel. | Retourneert null wanneer de sleutel afwezig is. | mixed | Geen verwacht. | Voorkomt dat aanroepers ruwe dictionaries moeten parseren. |
PdfObject::getRef(string $key) | Dictionarysleutel. | Retourneert een objectreferentie-tuple wanneer de waarde een referentie is. | `array | null` | Geen verwacht. |
PdfObject::getArray(string $key) | Dictionarysleutel. | Retourneert een array-waarde of een lege array wanneer niet beschikbaar. | array | Geen verwacht. | Handige wrapper voor dictionary-items met array-waarden. |
PdfObject::hasStream() | geen. | Controleert of er streambytes aanwezig zijn. | bool | Geen verwacht. | Onderscheidt objecten die uitsluitend uit een dictionary bestaan. |
PdfObject::getType() | geen. | Leest /Type. | `string | null` | Geen verwacht. |
PdfObject::getSubtype() | geen. | Leest /Subtype. | `string | null` | Geen verwacht. |
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision) | PDF-bytes, een geparseerde reader en de nulgebaseerde revisie-index. | Extraheert één incrementele revisie. | string | PdfParseException voor ongeldige grenzen. | Gebruikt door parsertests en -diagnostiek. |
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader) | PDF-bytes en een geparseerde reader. | Ontdekt de bytebereiken voor incrementele revisies. | array | PdfParseException voor een misvormde xref-structuur. | Helpt bij het analyseren van ondertekende of incrementeel bijgewerkte PDF’s. |
| `StreamDecoder::decode(string $data, string | array $filter)` | Streambytes en een of meer PDF-filters. | Past filters op volgorde toe. | string | PdfParseException voor niet-ondersteunde of ongeldige filters. |
new ResourceCollector(PdfReader $reader) | Geparseerde reader. | Begint met een lege set verzamelde objecten. | ResourceCollector | Geen verwacht. | Gebruikt door PdfReader::collectPageResources(). |
ResourceCollector::traverse(mixed $value, int $depth = 0) | Geparseerde waarde en recursiediepte. | Doorloopt bronreferenties tot aan de interne dieptelimieten. | void | Parserfouten voor ongeldige referenties. | Interne helper voor de bronsluiting bij pagina-import. |
ResourceCollector::getCollected() | geen. | Retourneert de verzamelde bronobjecten. | array | Geen verwacht. | Aanroepen na traverse(). |
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset) | Revisie-index, xref-offset, xref-items, trailer, optionele vorige offset. | Onveranderlijke momentopname van één incrementele revisie. | RevisionXRefTable | Geen verwacht. | Aangemaakt door interne onderdelen van de parser. |
RevisionXRefTable::getObjectNumbers() | geen. | Retourneert de objectnummers die actief zijn in de revisietabel. | array | Geen verwacht. | Laagniveau-API voor revisiediagnostiek. |
RevisionXRefTable::getActiveObjectCount() | geen. | Telt de actieve objecten. | int | Geen verwacht. | Nuttig voor parserasserties. |
RevisionXRefTable::hasRootUpdate() | geen. | Geeft aan of de revisie de documentroot bijwerkt. | bool | Geen verwacht. | Nuttig voor de analyse van incrementele updates. |
RevisionXRefTable::getSize() | geen. | Retourneert de groottewaarde van de xref-tabel. | int | Geen verwacht. | Weerspiegelt de geparseerde PDF-xref-metadata. |
Laagniveau-tokenizer- en xref-API’s
Sectie met titel “Laagniveau-tokenizer- en xref-API’s”Gebruik deze API’s alleen voor diepgaande parserdiagnostiek of het reduceren van fixtures. Ze stellen de lexer- en cross-referentiemachinerie onder PdfReader beschikbaar en zijn niet nodig voor normale import.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
new PdfTokenizer(string $data, int $offset = 0) | PDF-bytes en optionele initiële offset. | Begint bij offset nul. | PdfTokenizer | Geen verwacht. | Laagniveau-lexicale parser. |
PdfTokenizer::getOffset() | geen. | Retourneert de huidige byte-offset. | int | Geen verwacht. | Diagnostische helper voor parserfouten. |
PdfTokenizer::setOffset(int $offset) | Byte-offset. | Verplaatst de cursor van de tokenizer. | void | PdfParseException voor een ongeldige offset. | Voorzichtig gebruiken; aanroepers beheren de parserstatus. |
PdfTokenizer::isEof() | geen. | Controleert of de cursor het einde heeft bereikt. | bool | Geen verwacht. | Laagniveau-helper voor de parserlus. |
PdfTokenizer::skipWhitespace() | geen. | Gaat voorbij PDF-witruimte en -opmerkingen. | void | Geen verwacht. | Gebruikt vóór het lezen van tokens. |
PdfTokenizer::readToken() | geen. | Leest het volgende scalaire token. | `string | int | float |
PdfTokenizer::readName() | geen. | Leest een PDF-name-object. | string | PdfParseException voor een misvormde name. | Decodeert name-escapes. |
PdfTokenizer::readLiteralString() | geen. | Leest een literal string. | string | PdfParseException voor een misvormde string. | Verwerkt geneste haakjes en escapes. |
PdfTokenizer::readHexString() | geen. | Leest een hexadecimale string. | string | PdfParseException voor misvormde hex. | Vult hex met oneven lengte aan volgens de parserregels. |
PdfTokenizer::readNumber() | geen. | Leest een integer of float. | `int | float` | PdfParseException voor een ongeldig getal. |
PdfTokenizer::readKeyword() | geen. | Leest een PDF-keyword. | string | PdfParseException voor een ongeldig keyword. | Houdt het parsen van keywords gecentraliseerd. |
PdfTokenizer::readDictionary() | geen. | Leest een PDF-dictionary. | array | PdfParseException voor misvormde dictionaries. | Gebruikt voor objecten, streams en trailers. |
PdfTokenizer::readArray() | geen. | Leest een PDF-array. | array | PdfParseException voor misvormde arrays. | Recursieve parserhelper. |
PdfTokenizer::readValue() | geen. | Leest elke ondersteunde PDF-waarde. | mixed | PdfParseException voor misvormde waarden. | Veelgebruikt parserprimitief. |
PdfTokenizer::readStreamData(int $length) | Streamlengte. | Leest exact de gevraagde streambytes. | string | PdfParseException voor ongeldige streamgrenzen. | Gebruikt na het bepalen van de streamlengte uit de dictionary. |
PdfTokenizer::peek(int $length = 1) | Aantal bytes. | Leest vooruit zonder de cursor te verplaatsen. | string | Geen verwacht. | Nuttig voor vertakkingen in de parser. |
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0) | Patroon en optionele start-offset. | Zoekt achterwaarts vanaf het einde of vanaf de opgegeven offset. | `int | false` | Geen verwacht. |
PdfTokenizer::readLine() | geen. | Leest een regel vanaf de huidige offset. | string | Geen verwacht. | Laagniveau-scannerhelper. |
CrossRefParser::parseXRefTable(string $data, int $offset) | PDF-bytes en de offset van de xref-tabel. | Parseert klassieke cross-referentietabel-items. | array | PdfParseException voor misvormde xref-gegevens. | Laagniveau-parser-API. |
CrossRefParser::parseXRefStream(string $data, int $offset) | PDF-bytes en de offset van de xref-stream. | Parseert cross-referentiestream-items. | array | PdfParseException voor misvormde streamgegevens. | Ondersteunt moderne PDF-xref-streams. |
Optionele factories en browserpool
Sectie met titel “Optionele factories en browserpool”EInvoiceServiceFactory lost optionele Premium e-invoice-contracten pas op wanneer nodig en retourneert null wanneer ze afwezig zijn. BrowserPool beheert de Chrome-levenscyclus van de renderer; beheer deze alleen rechtstreeks in langlopende workers.
| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of mislukt met | Opmerkingen |
|---|---|---|---|---|---|
EInvoiceServiceFactory::makeEmbedder() | geen. | Retourneert null tenzij Premium Pro e-invoice-ondersteuning is geïnstalleerd. | `EmbedderInterface | null` | Constructiefouten vanuit het optionele pakket. |
EInvoiceServiceFactory::makeValidator() | geen. | Retourneert null tenzij Premium Enterprise-validatieondersteuning is geïnstalleerd. | `ValidatorInterface | null` | Constructiefouten vanuit het optionele pakket. |
EInvoiceServiceFactory::makeDefaultProfile() | geen. | Retourneert het standaard e-invoice-profiel wanneer beschikbaar. | `ProfileInterface | null` | Optionele pakketfouten. |
EInvoiceServiceFactory::makeSchematronRunner() | geen. | Retourneert null tenzij Premium Enterprise Schematron-ondersteuning is geïnstalleerd. | `SchematronRunnerInterface | null` | Constructiefouten vanuit het optionele pakket. |
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null) | Rendererconfiguratie en optionele logger. | De browser wordt lazy gestart bij de eerste getBrowser(). | BrowserPool | Geen verwacht tot het opstarten van de browser. | Levenscyclushelper van de renderer. |
BrowserPool::getBrowser() | geen. | Start de Chrome-browserinstantie of retourneert de huidige. | Browser | Fouten bij het opstarten van de browser. | Levenscyclushelper van de renderer. |
BrowserPool::incrementRenderCount() | geen. | Verhoogt de renderteller en roteert wanneer het poolbeleid dit vereist. | void | Fouten in de browserlevenscyclus. | Gebruikt door langlopende workers. |
BrowserPool::close() | geen. | Sluit de beheerde browserinstantie. | void | Fouten bij het afsluiten van de browser. | Aanroepen tijdens het afsluiten van de worker. |
Ontwikkelingsnotities
Sectie met titel “Ontwikkelingsnotities”- De renderer is geen browser-sandbox voor niet-vertrouwde HTML. Valideer de grootte, het bronbeleid en de autorisatie van de aanroeper vóór de weergave.
- De parser-API’s zijn bewust beperkt gehouden. Gebruik ze voor het importeren van Chrome-uitvoer, niet voor algemeen PDF-herstel.
- Sluit renderers expliciet af in langlevende workers.