Zum Inhalt springen

Artisan-API-Referenz

Das Artisan-Paket (nextpdf/artisan) stellt zwei verbundene API-Gruppen bereit: eine Chrome-Rendering-Schnittstelle – ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator, BrowserPool –, die ein HTML-Fragment in ein von Chrome erzeugtes PDF umwandelt, und eine schlanke Parser-/Importer-Schnittstelle – PdfReader, PageImporter, ImportedFormXObject sowie unterstützende Tokenizer-/Xref-Klassen –, mit der diese gerenderte Ausgabe wieder als Form-XObject mit auswählbarem Text in ein NextPDF-Dokument eingebettet wird.

Beginnen Sie hier: Wenn Sie lediglich ein PDF aus HTML erzeugen möchten, verwenden Sie dieses Paket nur selten direkt. Weisen Sie einem NextPDF-Document ein ChromeRendererConfig zu und rufen Sie writeHtmlChrome() auf (siehe den Quickstart). Greifen Sie erst auf die unten aufgeführten Klassen zurück, wenn Sie einen Renderer in einen Worker einbetten oder Parser-Diagnosen ausführen. Das erste Beispiel unter „Häufige Aufgaben“ zeigt diesen Weg mit einem einzigen Aufruf.

Die drei Abläufe unten decken nahezu jeden praktischen Einsatz ab, vom High-Level-Aufruf bis zur expliziten Render- und Import-Pipeline. Jedes Beispiel wird gegen nextpdf-Artisan/src geprüft (sowie gegen die README.md / ci/tests/ des Pakets).

Ein HTML-Fragment als PDF mit auswählbarem Text rendern – der kanonische Aufruf.

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

Was das bewirkt: Chrome führt das Layout des Fragments aus, und die Brücke bettet Seite 0 als Form-XObject ein, sodass der Text auswählbar bleibt. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static passt die Höhe automatisch an, wenn $height gleich null ist.

Führen Sie den Renderer aus und importieren Sie die Seite selbst – die explizite Pipeline hinter writeHtmlChrome(), für Worker und individuelle Platzierung.

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

Was das bewirkt: Rendert zu Chrome-PDF-Bytes, parst sie und importiert Seite 0 in ein ImportedFormXObject, das Sie platzieren können. Rufen Sie am Renderer immer close() auf, um den Chrome-Prozess freizugeben.

Erstellen Sie die Config aus einem Array im Framework-Stil – für config/*.php oder Bundle-Parameter statt fest verdrahteter Konstruktor-Argumente.

<?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,
]);

Was das bewirkt: Bildet ein Snake-Case-Config-Array auf den Konstruktor ab; nicht gesetzte Schlüssel fallen auf Standardwerte zurück, und chrome_binary wird nur angewendet, wenn es ein nicht leerer String ist.

Mit diesen Typen starten und steuern Sie einen Render: Erstellen Sie eine ChromeRendererConfig-Instanz, übergeben Sie sie an einen ChromeHtmlRenderer und rufen Sie anschließend render() auf, um ein ChromeRenderResult zu erhalten.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false)Pfad zur Binärdatei, Timeout, CSS, HTML-Größenlimit, Sandbox-Flag.Erkennt Chrome automatisch, wenn der Pfad zur Binärdatei null ist; die Sandbox bleibt aktiv, solange sie nicht deaktiviert wird.ChromeRendererConfigkeine zu erwarten.Setzen Sie noSandbox nur, wenn die Laufzeitumgebung es verlangt.
ChromeRendererConfig::fromArray(array $config)chrome_binary, render_timeout, default_css, max_html_size, no_sandbox.Fehlende Werte verwenden die Konstruktor-Standardwerte.ChromeRendererConfigBei Typabweichungen greifen für optionale Schlüssel die Standardwerte.Passt zu Konfigurations-Arrays im Framework-Stil.
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null)Config, optionaler Logger, optionale HTML-Richtlinie auf Parse-Ebene.Nutzt DefaultHtmlSecurityPolicy, wenn keine Richtlinie übergeben wird.ChromeHtmlRendererChrome-Setup-Fehler treten beim ersten Render auf.Der Renderer hält bis close() einen Browser-Pool.
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0)html: Eingabe-Fragment; widthPt: Papierbreite; heightPt: Zielhöhe oder automatisch.Berechnet die Inhaltshöhe automatisch, wenn heightPt <= 0.ChromeRenderResultChromeRenderException; Fehlschlag der HTML-Größenvalidierung.Blockiert Netzwerkanfragen für Subresources über CDP.
ChromeHtmlRenderer::getHtmlSecurityPolicy()keine.Liefert die konfigurierte Richtlinie auf Parse-Ebene.HtmlSecurityPolicyInterfacekeine zu erwarten.Ergänzt die Chrome-Kontrollen auf Transportebene.
ChromeHtmlRenderer::close()keine.Schließt den Browser-Pool und leert ihn.voidBrowser-Shutdown-Fehler können aus der zugrunde liegenden Bibliothek auftauchen.Beim Worker-Shutdown aufrufen.

Verwenden Sie diese APIs, wenn Sie externes HTML vor einem Render selbst validieren und einpacken, statt über ChromeHtmlRenderer::render() zu gehen (das sie bereits aufruft).

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
ChromeSecurityPolicy::validate(string $html, int $maxSize)HTML-Eingabe und maximale Byte-Größe.Akzeptiert die Eingabe nur, wenn Größe und unzulässige Konstrukte die Validierung bestehen.voidChromeRenderException oder Validierungs-Exception.Vor dem Browser-Rendern ausführen, wenn Sie externes HTML annehmen.
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '')HTML-Fragment, Viewport-Breite, optionales Standard-CSS.Erzeugt ein vollständiges Render-Dokument um das Fragment herum.stringValidierungs- oder String-Konstruktionsfehler.Hält rendererspezifisches CSS getrennt vom Anwendungs-HTML.

Verwenden Sie diese Helfer, um die Ausgabe eines Renders zu lesen (ChromeRenderResult) und zwischen PDF-Punkten und Chrome-CSS-Pixeln umzurechnen, wenn Sie einen Viewport dimensionieren oder die Höhe berechnen.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx)Rohe PDF-Bytes, Breite, Höhe, gemessene Inhaltshöhe.Keine Validierung über die typisierten Konstruktor-Eigenschaften hinaus.ChromeRenderResultkeine zu erwarten.Wird üblicherweise von ChromeHtmlRenderer::render() zurückgegeben.
ChromeRenderResult::getPdfData()keine.Liefert die rohen, von Chrome erzeugten PDF-Bytes.stringkeine zu erwarten.Beim Einbetten zusammen mit PdfReader und PageImporter nutzen.
ChromeRenderResult::getWidthPt()keine.Liefert die angeforderte Breite in Punkten.floatkeine zu erwarten.Dient zur Größenbestimmung des importierten Form-Objekts.
ChromeRenderResult::getHeightPt()keine.Liefert die berechnete oder angeforderte Höhe in Punkten.floatkeine zu erwarten.Die automatische Höhe enthält einen Puffer für das Print-Layout.
ViewportCalculator::pointsToCssPx(float $pt)pt: PDF-Punkte.Rechnet mit 96 CSS-px je 72 PDF-Punkten um.intkeine zu erwarten.Für die Chrome-Viewport-Breite gerundet.
ViewportCalculator::cssPxToPoints(float $px)px: CSS-Pixel.Rechnet mit 72 PDF-Punkten je 96 CSS-px um.floatkeine zu erwarten.Dient der Berechnung der automatischen Höhe.

Dies ist der zentrale Importpfad: Parsen Sie die Chrome-PDF-Bytes mit PdfReader und übergeben Sie den Reader anschließend an PageImporter::import(), um eine einbettbare Seite zu erhalten; die übrigen PdfReader-Methoden dienen der Diagnose.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
new PdfReader(string $data)data: vollständige PDF-Bytes.Der Parser läuft erst bei parse().PdfReaderkeine zu erwarten.Auf von Chrome erzeugte PDFs ausgelegt.
PdfReader::parse()keine.Parst die Xref-Kette und den Trailer.voidPdfParseException bei ungültiger PDF-Struktur.Muss vor dem Zugriff auf object/page aufgerufen werden.
PdfReader::getObject(int $objNum)Objektnummer.Löst das geparste Objekt anhand seiner Nummer auf.PdfObjectPdfParseException, wenn das Objekt fehlt oder fehlerhaft ist.Nach parse() verwenden.
PdfReader::getTrailer()keine.Liefert das geparste Trailer-Dictionary.arrayPdfParseException, wenn keine Trailer-Daten verfügbar sind.Wird von Diagnose und Revisionsanalyse genutzt.
PdfReader::getObjectNumbers()keine.Liefert die geparsten Objektnummern.arraynach dem Parsen keine zu erwarten.Nützlich für Importer-Diagnosen.
PdfReader::getPage(int $pageIndex)pageIndex: nullbasierter Seitenindex.Kein implizites Parsen.PdfObjectPdfParseException, wenn sie fehlt oder außerhalb des Bereichs liegt.Der Importer verwendet standardmäßig Seite 0.
PdfReader::getPageContentStream(PdfObject $page)page: geparstes Seitenobjekt.Löst den Content-Stream auf.stringPdfParseException bei ungültigen Streams.Ein leerer Stream führt zum Fehlschlag des Importers.
PdfReader::getPageResources(PdfObject $page)page: geparstes Seitenobjekt.Löst die Seiten-Ressourcen auf.arrayPdfParseException bei ungültigen Ressourcen.Das Ressourcen-Dictionary wird mit dem Form-Objekt eingebettet.
PdfReader::getPageMediaBox(PdfObject $page)page: geparstes Seitenobjekt.Greift bei Abwesenheit auf A4-ähnliche Maße zurück.arrayParser-Fehler.Liefert Koordinaten im PDF-Raum.
PdfReader::resolveRef(mixed $value)Geparster Wert.Löst Objektreferenzen rekursiv auf, soweit zutreffend.mixedPdfParseException bei ungültigen Referenzen.Interner Helfer, der für Importer-Workflows freigegeben ist.
PdfReader::collectPageResources(PdfObject $page)page: geparstes Seitenobjekt.Durchläuft die Ressourcenreferenzen der Seite.arrayParser-Fehler.Dient dazu, abhängige Objekte mit importierten Seiten einzubetten.
PdfReader::getRevisionCount()keine.Zählt die geparsten inkrementellen Revisionen.intnach dem Parsen keine zu erwarten.Nützlich für signierte oder inkrementell aktualisierte PDFs.
PdfReader::getRevisionXRef(int $index)Nullbasierter Revisionsindex.Liefert eine Revisions-Xref-Tabelle.RevisionXRefTablePdfParseException bei ungültigem Index.Für Low-Level-Revisionsdiagnosen nutzen.
PdfReader::getRevisions()keine.Liefert alle geparsten Revisions-Xref-Tabellen.arraynach dem Parsen keine zu erwarten.Schreibgeschützte Sicht auf den Parser-Zustand.
PageImporter::import(PdfReader $reader, int $pageIndex = 0)Geparster Reader und nullbasierter Seitenindex.Importiert die erste Seite, wenn er weggelassen wird.ImportedFormXObjectPdfParseException, wenn die Seite nicht extrahiert werden kann.Sammelt Content-Stream, Media-Box, Ressourcen und referenzierte Objekte.

Dies sind die Value-Objects und Helfer, die der Parser zurückgibt oder intern nutzt. Verwenden Sie sie, wenn Sie importierte Objekte, Ressourcen, Streams oder Revisionstabellen untersuchen.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict)Dekodierter Content-Stream, Media-Box, eingebettete Objekte, Ressourcen-Dictionary.Speichert eine in sich geschlossene importierte Form-Payload.ImportedFormXObjectkeine zu erwarten.Wird üblicherweise von PageImporter::import() zurückgegeben.
ImportedFormXObject::getWidth()keine.Liefert die Breite der importierten Form in Punkten.floatkeine zu erwarten.Verwenden Sie sie, wenn Sie Chrome-Ausgabe auf einer Seite platzieren.
ImportedFormXObject::getHeight()keine.Liefert die Höhe der importierten Form in Punkten.floatkeine zu erwarten.Render-Ergebnisse mit automatischer Höhe geben diesen Wert weiter.
ImportedFormXObject::getEmbeddedObjects()keine.Liefert die Objekte, die die importierte Form benötigt.arraykeine zu erwarten.Der Writer-Code nutzt diese Objekte, um Ressourcen zu erhalten.
ImportedFormXObject::getResourcesDict()keine.Liefert das importierte Ressourcen-Dictionary.arraykeine zu erwarten.Wird beim Aufbau des Form-XObject genutzt.
ImportedFormXObject::getMediaBox()keine.Liefert die importierte Media-Box.arraykeine zu erwarten.Für Platzierungsdiagnosen nutzen.
ImportedFormXObject::getContentStream()keine.Liefert den Content-Stream der importierten Seite.stringkeine zu erwarten.Gedacht für die Integration in writer/import.
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null)Objektnummer, Generation, geparstes Dictionary, optionale Stream-Bytes, optionaler dekodierter Stream, optionale rohe Dictionary-Bytes.Speichert den geparsten Objektzustand.PdfObjectkeine zu erwarten.Wird von Parser-Interna erzeugt.
PdfObject::getRawDictionaryBytes()keine.Liefert die originalen Dictionary-Bytes, wenn vorhanden.`stringnull`keine zu erwarten.
PdfObject::getRawStreamData()keine.Liefert die undekodierten Stream-Bytes, wenn vorhanden.`stringnull`keine zu erwarten.
PdfObject::getDictionary()keine.Liefert die geparsten Dictionary-Einträge.arraykeine zu erwarten.Schreibgeschützte Parser-Sicht.
PdfObject::get(string $key)Dictionary-Schlüssel.Liefert null, wenn der Schlüssel fehlt.mixedkeine zu erwarten.Bewahrt Aufrufer davor, rohe Dictionaries selbst zu parsen.
PdfObject::getRef(string $key)Dictionary-Schlüssel.Liefert ein Objektreferenz-Tupel, wenn der Wert eine Referenz ist.`arraynull`keine zu erwarten.
PdfObject::getArray(string $key)Dictionary-Schlüssel.Liefert einen Array-Wert oder ein leeres Array, wenn keiner verfügbar ist.arraykeine zu erwarten.Komfort-Wrapper für Dictionary-Einträge mit Array-Wert.
PdfObject::hasStream()keine.Prüft, ob Stream-Bytes vorhanden sind.boolkeine zu erwarten.Unterscheidet reine Dictionary-Objekte.
PdfObject::getType()keine.Liest /Type.`stringnull`keine zu erwarten.
PdfObject::getSubtype()keine.Liest /Subtype.`stringnull`keine zu erwarten.
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision)PDF-Bytes, ein geparster Reader und der nullbasierte Revisionsindex.Extrahiert eine inkrementelle Revision.stringPdfParseException bei ungültigen Grenzen.Wird von Parser-Tests und -Diagnosen genutzt.
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader)PDF-Bytes und ein geparster Reader.Ermittelt die Byte-Bereiche für inkrementelle Revisionen.arrayPdfParseException bei fehlerhafter Xref-Struktur.Hilft beim Analysieren signierter oder inkrementell aktualisierter PDFs.
`StreamDecoder::decode(string $data, stringarray $filter)`Stream-Bytes und ein oder mehrere PDF-Filter.Wendet die Filter der Reihe nach an.stringPdfParseException bei nicht unterstützten oder ungültigen Filtern.
new ResourceCollector(PdfReader $reader)Geparster Reader.Startet mit einer leeren Menge gesammelter Objekte.ResourceCollectorkeine zu erwarten.Wird von PdfReader::collectPageResources() genutzt.
ResourceCollector::traverse(mixed $value, int $depth = 0)Geparster Wert und Rekursionstiefe.Durchläuft Ressourcenreferenzen bis zu internen Tiefenlimits.voidParser-Fehler bei ungültigen Referenzen.Interner Helfer für den Ressourcenabschluss beim Seitenimport.
ResourceCollector::getCollected()keine.Liefert die gesammelten Ressourcenobjekte.arraykeine zu erwarten.Nach traverse() aufrufen.
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset)Revisionsindex, Xref-Offset, Xref-Einträge, Trailer, optionaler vorheriger Offset.Unveränderlicher Snapshot einer inkrementellen Revision.RevisionXRefTablekeine zu erwarten.Wird von Parser-Interna erzeugt.
RevisionXRefTable::getObjectNumbers()keine.Liefert die in der Revisionstabelle aktiven Objektnummern.arraykeine zu erwarten.Low-Level-API für Revisionsdiagnosen.
RevisionXRefTable::getActiveObjectCount()keine.Zählt die aktiven Objekte.intkeine zu erwarten.Nützlich für Parser-Assertions.
RevisionXRefTable::hasRootUpdate()keine.Meldet, ob die Revision das Dokument-Root aktualisiert.boolkeine zu erwarten.Nützlich für die Analyse inkrementeller Updates.
RevisionXRefTable::getSize()keine.Liefert den Größenwert der Xref-Tabelle.intkeine zu erwarten.Spiegelt die geparsten PDF-Xref-Metadaten wider.

Verwenden Sie diese APIs nur für tiefe Parser-Diagnosen oder zur Fixture-Reduktion. Sie legen den Lexer und die Cross-Reference-Maschinerie unter PdfReader offen und sind für den normalen Import nicht nötig.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
new PdfTokenizer(string $data, int $offset = 0)PDF-Bytes und optionaler Anfangs-Offset.Beginnt bei Offset null.PdfTokenizerkeine zu erwarten.Lexikalischer Low-Level-Parser.
PdfTokenizer::getOffset()keine.Liefert den aktuellen Byte-Offset.intkeine zu erwarten.Diagnose-Helfer für Parser-Fehler.
PdfTokenizer::setOffset(int $offset)Byte-Offset.Verschiebt den Tokenizer-Cursor.voidPdfParseException bei ungültigem Offset.Vorsichtig verwenden; Aufrufer verwalten den Parser-Zustand selbst.
PdfTokenizer::isEof()keine.Prüft, ob der Cursor das Ende erreicht hat.boolkeine zu erwarten.Low-Level-Helfer für die Parser-Schleife.
PdfTokenizer::skipWhitespace()keine.Überspringt PDF-Whitespace und -Kommentare.voidkeine zu erwarten.Wird vor Token-Lesevorgängen genutzt.
PdfTokenizer::readToken()keine.Liest das nächste skalare Token.`stringintfloat
PdfTokenizer::readName()keine.Liest ein PDF-Name-Objekt.stringPdfParseException bei fehlerhaftem Namen.Dekodiert Name-Escapes.
PdfTokenizer::readLiteralString()keine.Liest einen Literal-String.stringPdfParseException bei fehlerhaftem String.Behandelt verschachtelte Klammern und Escapes.
PdfTokenizer::readHexString()keine.Liest einen Hexadezimal-String.stringPdfParseException bei fehlerhaftem Hex.Füllt Hex ungerader Länge gemäß den Parser-Regeln auf.
PdfTokenizer::readNumber()keine.Liest einen Integer oder Float.`intfloat`PdfParseException bei ungültiger Zahl.
PdfTokenizer::readKeyword()keine.Liest ein PDF-Keyword.stringPdfParseException bei ungültigem Keyword.Hält das Keyword-Parsen zentralisiert.
PdfTokenizer::readDictionary()keine.Liest ein PDF-Dictionary.arrayPdfParseException bei fehlerhaften Dictionaries.Wird für Objekte, Streams und Trailer genutzt.
PdfTokenizer::readArray()keine.Liest ein PDF-Array.arrayPdfParseException bei fehlerhaften Arrays.Rekursiver Parser-Helfer.
PdfTokenizer::readValue()keine.Liest jeden unterstützten PDF-Wert.mixedPdfParseException bei fehlerhaften Werten.Gängiges Parser-Primitiv.
PdfTokenizer::readStreamData(int $length)Stream-Länge.Liest genau die angeforderten Stream-Bytes.stringPdfParseException bei ungültigen Stream-Grenzen.Wird genutzt, nachdem die Stream-Länge aus dem Dictionary aufgelöst wurde.
PdfTokenizer::peek(int $length = 1)Byte-Anzahl.Liest voraus, ohne weiterzurücken.stringkeine zu erwarten.Nützlich für Parser-Verzweigungen.
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0)Muster und optionaler Start-Offset.Sucht rückwärts vom Ende oder vom angegebenen Offset aus.`intfalse`keine zu erwarten.
PdfTokenizer::readLine()keine.Liest eine Zeile ab dem aktuellen Offset.stringkeine zu erwarten.Low-Level-Scanner-Helfer.
CrossRefParser::parseXRefTable(string $data, int $offset)PDF-Bytes und Offset der Xref-Tabelle.Parst die Einträge einer klassischen Xref-Tabelle.arrayPdfParseException bei fehlerhaften Xref-Daten.Low-Level-Parser-API.
CrossRefParser::parseXRefStream(string $data, int $offset)PDF-Bytes und Offset des Xref-Streams.Parst die Einträge eines Xref-Streams.arrayPdfParseException bei fehlerhaften Stream-Daten.Unterstützt moderne PDF-Xref-Streams.

EInvoiceServiceFactory löst optionale Premium-E-Invoice-Verträge lazy auf (und liefert null, wenn sie fehlen). BrowserPool ist der renderereigene Chrome-Lifecycle-Helfer, den Sie nur in langlebigen Workern direkt verwalten.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
EInvoiceServiceFactory::makeEmbedder()keine.Liefert null, sofern die Premium-Pro-E-Invoice-Unterstützung nicht installiert ist.`EmbedderInterfacenull`Fehler beim Erzeugen des optionalen Pakets.
EInvoiceServiceFactory::makeValidator()keine.Liefert null, sofern die Premium-Enterprise-Validierungsunterstützung nicht installiert ist.`ValidatorInterfacenull`Fehler beim Erzeugen des optionalen Pakets.
EInvoiceServiceFactory::makeDefaultProfile()keine.Liefert das Standard-E-Invoice-Profil, wenn verfügbar.`ProfileInterfacenull`Fehler im optionalen Paket.
EInvoiceServiceFactory::makeSchematronRunner()keine.Liefert null, sofern die Premium-Enterprise-Schematron-Unterstützung nicht installiert ist.`SchematronRunnerInterfacenull`Fehler beim Erzeugen des optionalen Pakets.
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null)Renderer-Config und optionaler Logger.Der Browser startet lazy beim ersten getBrowser().BrowserPoolbis zum Browser-Start keine zu erwarten.Lifecycle-Helfer des Renderers.
BrowserPool::getBrowser()keine.Startet die aktuelle Chrome-Browser-Instanz oder liefert sie zurück.BrowserFehler beim Browser-Start.Lifecycle-Helfer des Renderers.
BrowserPool::incrementRenderCount()keine.Erhöht den Render-Zähler und rotiert, wenn die Pool-Richtlinie es verlangt.voidFehler im Browser-Lifecycle.Wird in langlebigen Workern genutzt.
BrowserPool::close()keine.Schließt die verwaltete Browser-Instanz.voidFehler beim Browser-Shutdown.Beim Worker-Shutdown aufrufen.
  • Der Renderer ist keine Browser-Sandbox für nicht vertrauenswürdiges HTML. Validieren Sie vor dem Rendern Größe, Ressourcenrichtlinie und Aufruferautorisierung.
  • Die Parser-APIs sind bewusst schmal gehalten. Sie dienen dem Import von Chrome-Ausgabe, nicht der allgemeinen PDF-Reparatur.
  • Schließen Sie Renderer in langlebigen Workern explizit.