Riferimento API Artisan
In breve
Sezione intitolata “In breve”Il pacchetto Artisan (nextpdf/artisan) espone due gruppi di API collegati: un’interfaccia di rendering Chrome — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator, BrowserPool — che trasforma un frammento HTML in un PDF prodotto da Chrome, e un’interfaccia ridotta di parser/importer — PdfReader, PageImporter, ImportedFormXObject, e le classi tokenizer/xref — che reintegra l’output prodotto in un documento NextPDF come Form XObject con testo selezionabile.
Punto di partenza: se serve soltanto ottenere un PDF da HTML, raramente è necessario usare direttamente questo pacchetto. Collegare un ChromeRendererConfig a un Document NextPDF e chiamare writeHtmlChrome() (vedere il quickstart). Ricorrere alle classi seguenti solo quando si incorpora un renderer in un worker o si esegue la diagnostica del parser. Il primo esempio in Attività comuni mostra questo percorso a chiamata singola.
Attività comuni
Sezione intitolata “Attività comuni”I tre flussi seguenti coprono quasi tutti gli usi reali, dalla chiamata di livello più alto fino alla pipeline esplicita di rendering e importazione. Ogni esempio è verificato su nextpdf-Artisan/src (oltre che su README.md / ci/tests/).
Eseguire il rendering di un frammento HTML in un PDF con testo selezionabile — l’unica chiamata canonica.
<?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');Cosa fa: Chrome impagina il frammento e il bridge incorpora la pagina 0 come Form XObject, mantenendo il testo selezionabile. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static adatta automaticamente l’altezza quando $height è null.
Eseguire il renderer e importare la pagina manualmente — la pipeline esplicita dietro writeHtmlChrome(), per i worker e il posizionamento personalizzato.
<?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();}Cosa fa: esegue il rendering in byte PDF con Chrome, li analizza e importa la pagina 0 in un ImportedFormXObject posizionabile. Chiamare sempre close() sul renderer per rilasciare il processo Chrome.
Creare la configurazione da un array in stile framework — per config/*.php o per i parametri del bundle, anziché fissare gli argomenti nel costruttore.
<?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,]);Cosa fa: mappa un array di configurazione in formato snake-case sul costruttore; le chiavi non impostate ripiegano sui valori predefiniti e chrome_binary viene applicato solo se è una stringa non vuota.
Renderer Chrome
Sezione intitolata “Renderer Chrome”Questi tipi avviano ed eseguono il rendering: creare un ChromeRendererConfig, passarlo a un ChromeHtmlRenderer, quindi chiamare render() per ottenere un ChromeRenderResult.
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false) | Percorso del binario, timeout, CSS, limite di dimensione HTML, flag del sandbox. | Rileva automaticamente Chrome quando il percorso del binario è null; il sandbox resta abilitato se non viene disabilitato. | ChromeRendererConfig | nessuna prevista. | Impostare noSandbox solo quando il runtime lo richiede. |
ChromeRendererConfig::fromArray(array $config) | chrome_binary, render_timeout, default_css, max_html_size, no_sandbox. | I valori mancanti usano i valori predefiniti del costruttore. | ChromeRendererConfig | Le incongruenze di tipo ripiegano sui valori predefiniti per le chiavi opzionali. | Corrisponde agli array di configurazione in stile framework. |
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null) | Configurazione, logger opzionale, criterio HTML opzionale a livello di parsing. | Usa DefaultHtmlSecurityPolicy quando non viene fornito alcun criterio. | ChromeHtmlRenderer | Gli errori di configurazione di Chrome emergono al primo rendering. | Il renderer mantiene un pool del browser fino a close(). |
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0) | html: frammento di input; widthPt: larghezza della pagina; heightPt: altezza di destinazione o automatica. | Calcola automaticamente l’altezza del contenuto quando heightPt <= 0. | ChromeRenderResult | ChromeRenderException; errore di convalida delle dimensioni HTML. | Blocca tramite CDP le richieste di rete per le sottorisorse. |
ChromeHtmlRenderer::getHtmlSecurityPolicy() | nessuno. | Restituisce il criterio configurato a livello di parsing. | HtmlSecurityPolicyInterface | nessuna prevista. | Integra i controlli a livello di trasporto di Chrome. |
ChromeHtmlRenderer::close() | nessuno. | Chiude e svuota il pool del browser. | void | Gli errori di arresto del browser possono emergere dalla libreria sottostante. | Chiamare durante l’arresto del worker. |
Criterio di sicurezza HTML
Sezione intitolata “Criterio di sicurezza HTML”Ricorrere a queste classi quando occorre convalidare e racchiudere manualmente l’HTML esterno prima di un rendering, invece di passare attraverso ChromeHtmlRenderer::render() (che esegue già questi passaggi).
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
ChromeSecurityPolicy::validate(string $html, int $maxSize) | Input HTML e dimensione massima in byte. | Accetta l’input solo se le dimensioni sono entro il limite e non sono presenti costrutti non consentiti. | void | ChromeRenderException o eccezione di convalida. | Eseguire prima del rendering nel browser quando si accetta HTML esterno. |
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '') | Frammento HTML, larghezza del viewport, CSS predefinito opzionale. | Produce un documento completo per il rendering attorno al frammento. | string | Errori di convalida o di costruzione della stringa. | Mantiene il CSS specifico del renderer separato dall’HTML dell’applicazione. |
Risultato e helper di conversione
Sezione intitolata “Risultato e helper di conversione”Usare queste classi per leggere l’output di un rendering (ChromeRenderResult) e per convertire tra punti PDF e pixel CSS di Chrome durante il dimensionamento del viewport o il calcolo dell’altezza.
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx) | Byte PDF grezzi, larghezza, altezza, altezza del contenuto misurata. | Nessuna convalida oltre alle proprietà tipizzate del costruttore. | ChromeRenderResult | nessuna prevista. | In genere restituito da ChromeHtmlRenderer::render(). |
ChromeRenderResult::getPdfData() | nessuno. | Restituisce i byte PDF grezzi prodotti da Chrome. | string | nessuna prevista. | Usare con PdfReader e PageImporter durante l’incorporamento. |
ChromeRenderResult::getWidthPt() | nessuno. | Restituisce la larghezza richiesta in punti. | float | nessuna prevista. | Usato per dimensionare l’oggetto form importato. |
ChromeRenderResult::getHeightPt() | nessuno. | Restituisce l’altezza calcolata o richiesta in punti. | float | nessuna prevista. | L’altezza automatica include un buffer di impaginazione per la stampa. |
ViewportCalculator::pointsToCssPx(float $pt) | pt: punti PDF. | Converte usando 96 px CSS per 72 punti PDF. | int | nessuna prevista. | Arrotonda alla larghezza del viewport di Chrome. |
ViewportCalculator::cssPxToPoints(float $px) | px: pixel CSS. | Converte usando 72 punti PDF per 96 px CSS. | float | nessuna prevista. | Usato per il calcolo dell’altezza automatica. |
API di importazione e parsing
Sezione intitolata “API di importazione e parsing”Questo è il percorso di importazione principale: analizzare i byte PDF di Chrome con PdfReader, quindi passare il reader a PageImporter::import() per ottenere una pagina incorporabile; gli altri metodi di PdfReader supportano la diagnostica.
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
new PdfReader(string $data) | data: byte PDF completi. | Il parser non viene eseguito fino a parse(). | PdfReader | nessuna prevista. | Progettato per i PDF generati da Chrome. |
PdfReader::parse() | nessuno. | Analizza la catena xref e il trailer. | void | PdfParseException per struttura PDF non valida. | Deve essere chiamato prima di accedere a oggetti o pagine. |
PdfReader::getObject(int $objNum) | Numero dell’oggetto. | Risolve l’oggetto analizzato per numero. | PdfObject | PdfParseException quando l’oggetto manca o non è corretto. | Usare dopo parse(). |
PdfReader::getTrailer() | nessuno. | Restituisce il dizionario del trailer analizzato. | array | PdfParseException quando i dati del trailer non sono disponibili. | Usato dalla diagnostica e dall’analisi delle revisioni. |
PdfReader::getObjectNumbers() | nessuno. | Restituisce i numeri degli oggetti analizzati. | array | nessuna prevista dopo il parsing. | Utile per la diagnostica dell’importatore. |
PdfReader::getPage(int $pageIndex) | pageIndex: indice di pagina in base zero. | Nessun parsing implicito. | PdfObject | PdfParseException quando manca o è fuori intervallo. | L’importatore usa per impostazione predefinita la pagina 0. |
PdfReader::getPageContentStream(PdfObject $page) | page: oggetto pagina analizzato. | Risolve il flusso di contenuto. | string | PdfParseException per flussi non validi. | Un flusso vuoto causa l’errore dell’importatore. |
PdfReader::getPageResources(PdfObject $page) | page: oggetto pagina analizzato. | Risolve le risorse della pagina. | array | PdfParseException per risorse non valide. | Il dizionario delle risorse viene incorporato con l’oggetto form. |
PdfReader::getPageMediaBox(PdfObject $page) | page: oggetto pagina analizzato. | In assenza, ripiega su dimensioni simili al formato A4. | array | Errori del parser. | Restituisce le coordinate nello spazio PDF. |
PdfReader::resolveRef(mixed $value) | Valore analizzato. | Risolve i riferimenti agli oggetti in modo ricorsivo dove applicabile. | mixed | PdfParseException per riferimenti non validi. | Helper di tipo interno esposto per i flussi di lavoro dell’importatore. |
PdfReader::collectPageResources(PdfObject $page) | page: oggetto pagina analizzato. | Attraversa i riferimenti alle risorse della pagina. | array | Errori del parser. | Usato per incorporare gli oggetti dipendenti con le pagine importate. |
PdfReader::getRevisionCount() | nessuno. | Conta le revisioni incrementali analizzate. | int | nessuna prevista dopo il parsing. | Utile per i PDF firmati o aggiornati in modo incrementale. |
PdfReader::getRevisionXRef(int $index) | Indice di revisione in base zero. | Restituisce una singola tabella xref di revisione. | RevisionXRefTable | PdfParseException per indice non valido. | Usare per la diagnostica delle revisioni di basso livello. |
PdfReader::getRevisions() | nessuno. | Restituisce tutte le tabelle xref di revisione analizzate. | array | nessuna prevista dopo il parsing. | Vista di sola lettura dello stato del parser. |
PageImporter::import(PdfReader $reader, int $pageIndex = 0) | Reader analizzato e indice di pagina in base zero. | Importa la prima pagina se omesso. | ImportedFormXObject | PdfParseException quando non è possibile estrarre la pagina. | Raccoglie il flusso di contenuto, la media box, le risorse e gli oggetti referenziati. |
Oggetti di supporto del parser
Sezione intitolata “Oggetti di supporto del parser”Questi value object e helper sono restituiti dal parser o usati internamente — ricorrervi durante l’ispezione di oggetti importati, risorse, flussi o tabelle di revisione.
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict) | Flusso di contenuto decodificato, media box, oggetti incorporati, dizionario delle risorse. | Memorizza un payload autonomo di form importato. | ImportedFormXObject | nessuna prevista. | In genere restituito da PageImporter::import(). |
ImportedFormXObject::getWidth() | nessuno. | Restituisce la larghezza del form importato in punti. | float | nessuna prevista. | Usare quando si posiziona l’output di Chrome in una pagina. |
ImportedFormXObject::getHeight() | nessuno. | Restituisce l’altezza del form importato in punti. | float | nessuna prevista. | I risultati di rendering ad altezza automatica si propagano attraverso questo valore. |
ImportedFormXObject::getEmbeddedObjects() | nessuno. | Restituisce gli oggetti richiesti dal form importato. | array | nessuna prevista. | Il codice di scrittura usa questi oggetti per preservare le risorse. |
ImportedFormXObject::getResourcesDict() | nessuno. | Restituisce il dizionario delle risorse importato. | array | nessuna prevista. | Usato durante la creazione del Form XObject. |
ImportedFormXObject::getMediaBox() | nessuno. | Restituisce la media box importata. | array | nessuna prevista. | Usare per la diagnostica di posizionamento. |
ImportedFormXObject::getContentStream() | nessuno. | Restituisce il flusso di contenuto della pagina importata. | string | nessuna prevista. | Destinato all’integrazione con i componenti di scrittura/importazione. |
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null) | Numero dell’oggetto, generazione, dizionario analizzato, byte di flusso opzionali, flusso decodificato opzionale, byte di dizionario grezzi opzionali. | Memorizza lo stato dell’oggetto analizzato. | PdfObject | nessuna prevista. | Creato dai componenti interni del parser. |
PdfObject::getRawDictionaryBytes() | nessuno. | Restituisce i byte originali del dizionario quando disponibili. | `string | null` | nessuna prevista. |
PdfObject::getRawStreamData() | nessuno. | Restituisce i byte di flusso non decodificati quando disponibili. | `string | null` | nessuna prevista. |
PdfObject::getDictionary() | nessuno. | Restituisce le voci del dizionario analizzate. | array | nessuna prevista. | Vista di sola lettura del parser. |
PdfObject::get(string $key) | Chiave del dizionario. | Restituisce null quando la chiave è assente. | mixed | nessuna prevista. | Evita ai chiamanti di analizzare i dizionari grezzi. |
PdfObject::getRef(string $key) | Chiave del dizionario. | Restituisce la tupla di riferimento all’oggetto quando il valore è un riferimento. | `array | null` | nessuna prevista. |
PdfObject::getArray(string $key) | Chiave del dizionario. | Restituisce un valore di array o un array vuoto quando non disponibile. | array | nessuna prevista. | Wrapper di comodità per le voci di dizionario con valore di array. |
PdfObject::hasStream() | nessuno. | Verifica se sono presenti byte di flusso. | bool | nessuna prevista. | Distingue gli oggetti di solo dizionario. |
PdfObject::getType() | nessuno. | Legge /Type. | `string | null` | nessuna prevista. |
PdfObject::getSubtype() | nessuno. | Legge /Subtype. | `string | null` | nessuna prevista. |
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision) | Byte PDF, un reader analizzato e l’indice di revisione in base zero. | Estrae una revisione incrementale. | string | PdfParseException per limiti non validi. | Usato dai test e dalla diagnostica del parser. |
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader) | Byte PDF e un reader analizzato. | Individua gli intervalli di byte per le revisioni incrementali. | array | PdfParseException per struttura xref non corretta. | Aiuta ad analizzare i PDF firmati o aggiornati in modo incrementale. |
| `StreamDecoder::decode(string $data, string | array $filter)` | Byte di flusso e uno o più filtri PDF. | Applica i filtri in ordine. | string | PdfParseException per filtri non supportati o non validi. |
new ResourceCollector(PdfReader $reader) | Reader analizzato. | Inizia con un set di oggetti raccolti vuoto. | ResourceCollector | nessuna prevista. | Usato da PdfReader::collectPageResources(). |
ResourceCollector::traverse(mixed $value, int $depth = 0) | Valore analizzato e profondità di ricorsione. | Attraversa i riferimenti alle risorse fino ai limiti di profondità interni. | void | Errori del parser per riferimenti non validi. | Helper interno per la chiusura delle risorse di importazione della pagina. |
ResourceCollector::getCollected() | nessuno. | Restituisce gli oggetti risorsa raccolti. | array | nessuna prevista. | Chiamare dopo traverse(). |
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset) | Indice di revisione, offset xref, voci xref, trailer, offset precedente opzionale. | Snapshot immutabile di una singola revisione incrementale. | RevisionXRefTable | nessuna prevista. | Creato dai componenti interni del parser. |
RevisionXRefTable::getObjectNumbers() | nessuno. | Restituisce i numeri degli oggetti attivi nella tabella di revisione. | array | nessuna prevista. | API diagnostica delle revisioni di basso livello. |
RevisionXRefTable::getActiveObjectCount() | nessuno. | Conta gli oggetti attivi. | int | nessuna prevista. | Utile per le asserzioni del parser. |
RevisionXRefTable::hasRootUpdate() | nessuno. | Indica se la revisione aggiorna la radice del documento. | bool | nessuna prevista. | Utile per l’analisi degli aggiornamenti incrementali. |
RevisionXRefTable::getSize() | nessuno. | Restituisce il valore di dimensione della tabella xref. | int | nessuna prevista. | Rispecchia i metadati xref del PDF analizzato. |
API di tokenizer e xref di basso livello
Sezione intitolata “API di tokenizer e xref di basso livello”Ricorrere a queste classi solo per la diagnostica approfondita del parser o per la riduzione delle fixture — espongono il lexer e i meccanismi di cross-reference sottostanti a PdfReader e non sono necessarie per l’importazione normale.
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
new PdfTokenizer(string $data, int $offset = 0) | Byte PDF e offset iniziale opzionale. | Inizia dall’offset zero. | PdfTokenizer | nessuna prevista. | Parser lessicale di basso livello. |
PdfTokenizer::getOffset() | nessuno. | Restituisce l’offset in byte corrente. | int | nessuna prevista. | Helper diagnostico per gli errori del parser. |
PdfTokenizer::setOffset(int $offset) | Offset in byte. | Sposta il cursore del tokenizer. | void | PdfParseException per offset non valido. | Usare con attenzione; lo stato del parser resta responsabilità dei chiamanti. |
PdfTokenizer::isEof() | nessuno. | Verifica se il cursore ha raggiunto la fine. | bool | nessuna prevista. | Helper di ciclo del parser di basso livello. |
PdfTokenizer::skipWhitespace() | nessuno. | Avanza oltre gli spazi vuoti e i commenti PDF. | void | nessuna prevista. | Usato prima delle letture dei token. |
PdfTokenizer::readToken() | nessuno. | Legge il token scalare successivo. | `string | int | float |
PdfTokenizer::readName() | nessuno. | Legge un oggetto nome PDF. | string | PdfParseException per nome non corretto. | Decodifica gli escape dei nomi. |
PdfTokenizer::readLiteralString() | nessuno. | Legge una stringa letterale. | string | PdfParseException per stringa non corretta. | Gestisce parentesi annidate ed escape. |
PdfTokenizer::readHexString() | nessuno. | Legge una stringa esadecimale. | string | PdfParseException per dati esadecimali non corretti. | Completa i valori esadecimali di lunghezza dispari secondo le regole del parser. |
PdfTokenizer::readNumber() | nessuno. | Legge un intero o un float. | `int | float` | PdfParseException per numero non valido. |
PdfTokenizer::readKeyword() | nessuno. | Legge una parola chiave PDF. | string | PdfParseException per parola chiave non valida. | Mantiene centralizzata l’analisi delle parole chiave. |
PdfTokenizer::readDictionary() | nessuno. | Legge un dizionario PDF. | array | PdfParseException per dizionari non corretti. | Usato per oggetti, flussi e trailer. |
PdfTokenizer::readArray() | nessuno. | Legge un array PDF. | array | PdfParseException per array non corretti. | Helper ricorsivo del parser. |
PdfTokenizer::readValue() | nessuno. | Legge qualsiasi valore PDF supportato. | mixed | PdfParseException per valori non corretti. | Primitiva comune del parser. |
PdfTokenizer::readStreamData(int $length) | Lunghezza del flusso. | Legge esattamente i byte di flusso richiesti. | string | PdfParseException per confini di flusso non validi. | Usato dopo la risoluzione della lunghezza del flusso del dizionario. |
PdfTokenizer::peek(int $length = 1) | Numero di byte. | Legge in avanti senza spostare il cursore. | string | nessuna prevista. | Utile per la diramazione del parser. |
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0) | Pattern e offset iniziale opzionale. | Esegue la ricerca all’indietro dalla fine o dall’offset fornito. | `int | false` | nessuna prevista. |
PdfTokenizer::readLine() | nessuno. | Legge una riga a partire dall’offset corrente. | string | nessuna prevista. | Helper dello scanner di basso livello. |
CrossRefParser::parseXRefTable(string $data, int $offset) | Byte PDF e offset della tabella xref. | Analizza le voci della tabella xref classica. | array | PdfParseException per dati xref non corretti. | API del parser di basso livello. |
CrossRefParser::parseXRefStream(string $data, int $offset) | Byte PDF e offset del flusso xref. | Analizza le voci del flusso xref. | array | PdfParseException per dati di flusso non corretti. | Supporta i moderni flussi xref PDF. |
Factory opzionali e pool del browser
Sezione intitolata “Factory opzionali e pool del browser”EInvoiceServiceFactory risolve in modo lazy i contratti opzionali di fatturazione elettronica Premium (restituendo null quando sono assenti). BrowserPool è l’helper del ciclo di vita di Chrome di proprietà del renderer; gestirlo direttamente solo nei worker a esecuzione prolungata.
| Simbolo | Parametri | Comportamento predefinito | Restituisce | Genera o fallisce con | Note |
|---|---|---|---|---|---|
EInvoiceServiceFactory::makeEmbedder() | nessuno. | Restituisce null a meno che non sia installato il supporto per la fatturazione elettronica di Premium Pro. | `EmbedderInterface | null` | Errori di costruzione del pacchetto opzionale. |
EInvoiceServiceFactory::makeValidator() | nessuno. | Restituisce null a meno che non sia installato il supporto per la convalida di Premium Enterprise. | `ValidatorInterface | null` | Errori di costruzione del pacchetto opzionale. |
EInvoiceServiceFactory::makeDefaultProfile() | nessuno. | Restituisce il profilo di fatturazione elettronica predefinito quando disponibile. | `ProfileInterface | null` | Errori del pacchetto opzionale. |
EInvoiceServiceFactory::makeSchematronRunner() | nessuno. | Restituisce null a meno che non sia installato il supporto Schematron di Premium Enterprise. | `SchematronRunnerInterface | null` | Errori di costruzione del pacchetto opzionale. |
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null) | Configurazione del renderer e logger opzionale. | Il browser si avvia in modo lazy alla prima chiamata di getBrowser(). | BrowserPool | nessuna prevista fino all’avvio del browser. | Helper del ciclo di vita di proprietà del renderer. |
BrowserPool::getBrowser() | nessuno. | Avvia o restituisce l’istanza corrente del browser Chrome. | Browser | Errori di avvio del browser. | Helper del ciclo di vita di proprietà del renderer. |
BrowserPool::incrementRenderCount() | nessuno. | Incrementa il contatore di rendering e ruota il browser quando il criterio del pool lo richiede. | void | Errori del ciclo di vita del browser. | Usato dai worker a esecuzione prolungata. |
BrowserPool::close() | nessuno. | Chiude l’istanza del browser gestita. | void | Errori di arresto del browser. | Chiamare durante l’arresto del worker. |
Note di sviluppo
Sezione intitolata “Note di sviluppo”- Il renderer non costituisce una sandbox del browser per HTML non attendibile. Convalidare le dimensioni, il criterio delle risorse e l’autorizzazione del chiamante prima del rendering.
- Le API del parser sono volutamente ridotte. Servono per l’importazione dell’output di Chrome, non per la riparazione generale dei PDF.
- Chiudere i renderer in modo esplicito nei worker a esecuzione prolungata.