Référence de l’API Artisan
En un coup d’œil
Section intitulée « En un coup d’œil »Le package Artisan (nextpdf/artisan) expose deux ensembles d’API liés : une API de rendu Chrome — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator, BrowserPool — qui transforme un fragment HTML en PDF produit par Chrome, et une API limitée de parsing/import — PdfReader, PageImporter, ImportedFormXObject, ainsi que les classes tokenizer/xref qui les accompagnent — qui réintègre cette sortie rendue dans un document NextPDF sous forme de Form XObject, avec un texte qui reste sélectionnable.
Commence ici : si tu veux simplement générer un PDF à partir de HTML, tu n’as généralement pas besoin de toucher ce package directement. Associe un ChromeRendererConfig à un Document NextPDF et appelle writeHtmlChrome() (voir le guide de démarrage rapide). Tourne-toi vers les classes ci-dessous uniquement si tu intègres un renderer dans un worker ou si tu lances des diagnostics du parser. Le premier exemple sous Tâches courantes illustre ce chemin en un seul appel.
Tâches courantes
Section intitulée « Tâches courantes »Les trois flux ci-dessous couvrent la quasi-totalité des usages réels, de l’appel de plus haut niveau jusqu’au pipeline explicite de rendu et d’import. Chaque exemple a été vérifié avec nextpdf-Artisan/src (ainsi qu’avec le README.md / ci/tests/ du package).
Rendre un fragment HTML en PDF avec du texte sélectionnable — l’appel canonique en une seule étape.
<?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');Ce que fait cet appel : Chrome met en page le fragment, et la passerelle intègre la page 0 sous forme de Form XObject afin que le texte reste sélectionnable. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static ajuste automatiquement la hauteur quand $height vaut null.
Lance le renderer et importe la page toi-même — le pipeline explicite derrière writeHtmlChrome(), pour les workers et les placements personnalisés.
<?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();}Ce que fait ce pipeline : il produit les octets PDF avec Chrome, les parse, puis importe la page 0 dans un ImportedFormXObject que tu peux placer. Appelle toujours close() sur le renderer pour libérer le processus Chrome.
Construis la config à partir d’un tableau au style framework — pour config/*.php ou les paramètres d’un bundle, au lieu d’arguments de constructeur codés en dur.
<?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,]);Ce que fait cette config : elle mappe un tableau de config en snake_case sur le constructeur ; les clés absentes utilisent les valeurs par défaut, et chrome_binary n’est appliqué que lorsqu’il s’agit d’une chaîne non vide.
Renderer Chrome
Section intitulée « Renderer Chrome »Ces types configurent et exécutent un rendu : construis un ChromeRendererConfig, confie-le à un ChromeHtmlRenderer, puis appelle render() pour obtenir un ChromeRenderResult.
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false) | Chemin du binaire, timeout, CSS, limite de taille HTML, drapeau sandbox. | Détecte automatiquement Chrome quand le chemin du binaire est null ; le sandbox reste activé sauf désactivation explicite. | ChromeRendererConfig | aucune attendue. | N’active noSandbox que lorsque l’environnement d’exécution l’exige. |
ChromeRendererConfig::fromArray(array $config) | chrome_binary, render_timeout, default_css, max_html_size, no_sandbox. | Les valeurs manquantes utilisent les valeurs par défaut du constructeur. | ChromeRendererConfig | Les types non conformes retombent sur les valeurs par défaut pour les clés optionnelles. | Correspond aux tableaux de configuration de style framework. |
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null) | Config, logger optionnel, politique HTML optionnelle pour le parsing. | Utilise DefaultHtmlSecurityPolicy quand aucune politique n’est fournie. | ChromeHtmlRenderer | Les erreurs de configuration de Chrome surviennent au premier rendu. | Le renderer détient un pool de navigateurs jusqu’à close(). |
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0) | html : fragment en entrée ; widthPt : largeur du papier ; heightPt : hauteur cible ou automatique. | Calcule automatiquement la hauteur du contenu quand heightPt <= 0. | ChromeRenderResult | ChromeRenderException ; échec de la validation de taille du HTML. | Bloque les requêtes réseau de sous-ressources via CDP. |
ChromeHtmlRenderer::getHtmlSecurityPolicy() | aucun. | Retourne la politique configurée au niveau du parsing. | HtmlSecurityPolicyInterface | aucune attendue. | Complète les contrôles de Chrome au niveau du transport. |
ChromeHtmlRenderer::close() | aucun. | Ferme le pool de navigateurs et le vide. | void | Des erreurs d’arrêt du navigateur peuvent remonter depuis la bibliothèque sous-jacente. | À appeler lors de l’arrêt du worker. |
Politique de sécurité HTML
Section intitulée « Politique de sécurité HTML »Tourne-toi vers ces classes quand tu valides et encapsules toi-même du HTML externe avant un rendu, au lieu de passer par ChromeHtmlRenderer::render() (qui les appelle déjà).
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
ChromeSecurityPolicy::validate(string $html, int $maxSize) | Entrée HTML et taille maximale en octets. | N’accepte l’entrée que si la taille est conforme et qu’aucune construction interdite n’est détectée. | void | ChromeRenderException ou exception de validation. | À exécuter avant de confier le rendu au navigateur quand tu acceptes du HTML externe. |
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '') | Fragment HTML, largeur du viewport, CSS par défaut optionnel. | Produit un document de rendu complet autour du fragment. | string | Erreurs de validation ou de construction de chaîne. | Sépare le CSS propre au renderer du HTML applicatif. |
Résultat et utilitaires de conversion
Section intitulée « Résultat et utilitaires de conversion »Utilise-les pour lire la sortie d’un rendu (ChromeRenderResult) et pour convertir entre les points PDF et les pixels CSS de Chrome quand tu dimensionnes un viewport ou calcules une hauteur.
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx) | Octets PDF bruts, largeur, hauteur, hauteur de contenu mesurée. | Aucune validation au-delà des propriétés typées du constructeur. | ChromeRenderResult | aucune attendue. | Généralement retourné par ChromeHtmlRenderer::render(). |
ChromeRenderResult::getPdfData() | aucun. | Retourne les octets PDF bruts produits par Chrome. | string | aucune attendue. | À utiliser avec PdfReader et PageImporter lors de l’intégration. |
ChromeRenderResult::getWidthPt() | aucun. | Retourne la largeur demandée en points. | float | aucune attendue. | Utilisé pour dimensionner l’objet form importé. |
ChromeRenderResult::getHeightPt() | aucun. | Retourne la hauteur calculée ou demandée en points. | float | aucune attendue. | La hauteur automatique inclut une marge de mise en page d’impression. |
ViewportCalculator::pointsToCssPx(float $pt) | pt : points PDF. | Convertit sur la base de 96 px CSS pour 72 points PDF. | int | aucune attendue. | Arrondi pour la largeur du viewport Chrome. |
ViewportCalculator::cssPxToPoints(float $px) | px : pixels CSS. | Convertit sur la base de 72 points PDF pour 96 px CSS. | float | aucune attendue. | Utilisé pour le calcul de la hauteur automatique. |
API d’import et de parsing
Section intitulée « API d’import et de parsing »C’est le chemin d’import central : parse les octets PDF de Chrome avec PdfReader, puis confie le reader à PageImporter::import() pour obtenir une page intégrable ; les autres méthodes de PdfReader servent au diagnostic.
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
new PdfReader(string $data) | data : octets PDF complets. | Le parser n’est pas lancé avant parse(). | PdfReader | aucune attendue. | Conçu pour les PDF générés par Chrome. |
PdfReader::parse() | aucun. | Parse la chaîne xref et le trailer. | void | PdfParseException pour une structure PDF invalide. | Doit être appelée avant tout accès aux objets/pages. |
PdfReader::getObject(int $objNum) | Numéro d’objet. | Résout l’objet parsé par son numéro. | PdfObject | PdfParseException quand l’objet est absent ou mal formé. | À utiliser après parse(). |
PdfReader::getTrailer() | aucun. | Retourne le dictionnaire du trailer parsé. | array | PdfParseException quand les données du trailer sont indisponibles. | Utilisé par les diagnostics et l’analyse des révisions. |
PdfReader::getObjectNumbers() | aucun. | Retourne les numéros d’objets parsés. | array | aucune attendue après le parsing. | Utile pour les diagnostics de l’importeur. |
PdfReader::getPage(int $pageIndex) | pageIndex : index de page à base zéro. | Aucun parsing implicite. | PdfObject | PdfParseException quand la page est absente ou hors limites. | L’importeur prend par défaut la page 0. |
PdfReader::getPageContentStream(PdfObject $page) | page : objet page parsé. | Résout le flux de contenu. | string | PdfParseException pour des flux invalides. | Un flux vide provoque l’échec de l’importeur. |
PdfReader::getPageResources(PdfObject $page) | page : objet page parsé. | Résout les ressources de la page. | array | PdfParseException pour des ressources invalides. | Le dictionnaire de ressources est intégré avec l’objet form. |
PdfReader::getPageMediaBox(PdfObject $page) | page : objet page parsé. | Utilise des dimensions de type A4 par défaut si elle est absente. | array | Échecs du parser. | Retourne des coordonnées dans l’espace PDF. |
PdfReader::resolveRef(mixed $value) | Valeur parsée. | Résout récursivement les références d’objets le cas échéant. | mixed | PdfParseException pour des références invalides. | Utilitaire interne exposé pour les workflows de l’importeur. |
PdfReader::collectPageResources(PdfObject $page) | page : objet page parsé. | Parcourt les références de ressources de la page. | array | Échecs du parser. | Utilisé pour intégrer les objets dépendants avec les pages importées. |
PdfReader::getRevisionCount() | aucun. | Compte les révisions incrémentales parsées. | int | aucune attendue après le parsing. | Utile pour les PDF signés ou mis à jour de manière incrémentale. |
PdfReader::getRevisionXRef(int $index) | Index de révision à base zéro. | Retourne une table xref de révision. | RevisionXRefTable | PdfParseException pour un index invalide. | À utiliser pour les diagnostics de révision de bas niveau. |
PdfReader::getRevisions() | aucun. | Retourne toutes les tables xref de révision parsées. | array | aucune attendue après le parsing. | Vue en lecture seule de l’état du parser. |
PageImporter::import(PdfReader $reader, int $pageIndex = 0) | Reader parsé et index de page à base zéro. | Importe la première page lorsqu’il est omis. | ImportedFormXObject | PdfParseException quand la page ne peut pas être extraite. | Collecte le flux de contenu, la media box, les ressources et les objets référencés. |
Objets de support du parser
Section intitulée « Objets de support du parser »Ce sont les objets de valeur et utilitaires que le parser retourne ou utilise en interne — tourne-toi vers eux quand tu inspectes des objets importés, des ressources, des flux ou des tables de révision.
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict) | Flux de contenu décodé, media box, objets intégrés, dictionnaire de ressources. | Stocke une charge utile autonome de form importé. | ImportedFormXObject | aucune attendue. | Généralement retourné par PageImporter::import(). |
ImportedFormXObject::getWidth() | aucun. | Retourne la largeur du form importé en points. | float | aucune attendue. | À utiliser quand tu places la sortie de Chrome dans une page. |
ImportedFormXObject::getHeight() | aucun. | Retourne la hauteur du form importé en points. | float | aucune attendue. | Les résultats de rendu à hauteur automatique se propagent à travers cette valeur. |
ImportedFormXObject::getEmbeddedObjects() | aucun. | Retourne les objets requis par le form importé. | array | aucune attendue. | Le writer utilise ces objets pour préserver les ressources. |
ImportedFormXObject::getResourcesDict() | aucun. | Retourne le dictionnaire de ressources importé. | array | aucune attendue. | Utilisé lors de la construction du Form XObject. |
ImportedFormXObject::getMediaBox() | aucun. | Retourne la media box importée. | array | aucune attendue. | À utiliser pour les diagnostics de placement. |
ImportedFormXObject::getContentStream() | aucun. | Retourne le flux de contenu de la page importée. | string | aucune attendue. | Destiné à l’intégration writer/import. |
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null) | Numéro d’objet, génération, dictionnaire parsé, octets de flux optionnels, flux décodé optionnel, octets de dictionnaire bruts optionnels. | Stocke l’état de l’objet parsé. | PdfObject | aucune attendue. | Créé par les composants internes du parser. |
PdfObject::getRawDictionaryBytes() | aucun. | Retourne les octets d’origine du dictionnaire quand ils sont disponibles. | `string | null` | aucune attendue. |
PdfObject::getRawStreamData() | aucun. | Retourne les octets de flux non décodés quand ils sont disponibles. | `string | null` | aucune attendue. |
PdfObject::getDictionary() | aucun. | Retourne les entrées de dictionnaire parsées. | array | aucune attendue. | Vue en lecture seule du parser. |
PdfObject::get(string $key) | Clé du dictionnaire. | Retourne null quand la clé est absente. | mixed | aucune attendue. | Évite aux appelants de parser des dictionnaires bruts. |
PdfObject::getRef(string $key) | Clé du dictionnaire. | Retourne le tuple de référence d’objet quand la valeur est une référence. | `array | null` | aucune attendue. |
PdfObject::getArray(string $key) | Clé du dictionnaire. | Retourne une valeur de type tableau, ou un tableau vide quand elle est indisponible. | array | aucune attendue. | Wrapper pratique pour les entrées de dictionnaire dont la valeur est un tableau. |
PdfObject::hasStream() | aucun. | Vérifie si des octets de flux sont présents. | bool | aucune attendue. | Distingue les objets constitués uniquement d’un dictionnaire. |
PdfObject::getType() | aucun. | Lit /Type. | `string | null` | aucune attendue. |
PdfObject::getSubtype() | aucun. | Lit /Subtype. | `string | null` | aucune attendue. |
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision) | Octets PDF, un reader parsé et l’index de révision à base zéro. | Extrait une révision incrémentale. | string | PdfParseException pour des limites invalides. | Utilisé par les tests et les diagnostics du parser. |
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader) | Octets PDF et un reader parsé. | Identifie les plages d’octets des révisions incrémentales. | array | PdfParseException pour une structure xref mal formée. | Aide à analyser les PDF signés ou mis à jour de manière incrémentale. |
| `StreamDecoder::decode(string $data, string | array $filter)` | Octets de flux et un ou plusieurs filtres PDF. | Applique les filtres dans l’ordre. | string | PdfParseException pour des filtres non pris en charge ou invalides. |
new ResourceCollector(PdfReader $reader) | Reader parsé. | Démarre avec un ensemble vide d’objets collectés. | ResourceCollector | aucune attendue. | Utilisé par PdfReader::collectPageResources(). |
ResourceCollector::traverse(mixed $value, int $depth = 0) | Valeur parsée et profondeur de récursion. | Parcourt les références de ressources jusqu’aux limites de profondeur internes. | void | Échecs du parser pour des références invalides. | Utilitaire interne pour la fermeture des ressources lors de l’import de page. |
ResourceCollector::getCollected() | aucun. | Retourne les objets de ressources collectés. | array | aucune attendue. | À appeler après traverse(). |
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset) | Index de révision, offset xref, entrées xref, trailer, offset précédent optionnel. | Instantané immuable d’une révision incrémentale. | RevisionXRefTable | aucune attendue. | Créé par les composants internes du parser. |
RevisionXRefTable::getObjectNumbers() | aucun. | Retourne les numéros d’objets actifs dans la table de révision. | array | aucune attendue. | API de diagnostic de révision bas niveau. |
RevisionXRefTable::getActiveObjectCount() | aucun. | Compte les objets actifs. | int | aucune attendue. | Utile pour les assertions du parser. |
RevisionXRefTable::hasRootUpdate() | aucun. | Indique si la révision met à jour la racine du document. | bool | aucune attendue. | Utile pour l’analyse des mises à jour incrémentales. |
RevisionXRefTable::getSize() | aucun. | Retourne la valeur de taille de la table xref. | int | aucune attendue. | Reflète les métadonnées xref PDF parsées. |
API bas niveau du tokenizer et de la xref
Section intitulée « API bas niveau du tokenizer et de la xref »Tourne-toi vers ces classes uniquement pour des diagnostics approfondis du parser ou la réduction de fixtures — elles exposent le lexer et le mécanisme de référence croisée sous PdfReader, et ne sont pas nécessaires pour un import normal.
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
new PdfTokenizer(string $data, int $offset = 0) | Octets PDF et offset initial optionnel. | Démarre à l’offset zéro. | PdfTokenizer | aucune attendue. | Parser lexical de bas niveau. |
PdfTokenizer::getOffset() | aucun. | Retourne l’offset d’octet courant. | int | aucune attendue. | Utilitaire de diagnostic pour les erreurs du parser. |
PdfTokenizer::setOffset(int $offset) | Offset d’octet. | Déplace le curseur du tokenizer. | void | PdfParseException pour un offset invalide. | À utiliser avec précaution ; les appelants sont responsables de l’état du parser. |
PdfTokenizer::isEof() | aucun. | Vérifie si le curseur a atteint la fin. | bool | aucune attendue. | Utilitaire de boucle du parser bas niveau. |
PdfTokenizer::skipWhitespace() | aucun. | Avance au-delà des espaces et des commentaires PDF. | void | aucune attendue. | Utilisé avant la lecture des tokens. |
PdfTokenizer::readToken() | aucun. | Lit le prochain token scalaire. | `string | int | float |
PdfTokenizer::readName() | aucun. | Lit un objet nom PDF. | string | PdfParseException pour un nom mal formé. | Décode les échappements de nom. |
PdfTokenizer::readLiteralString() | aucun. | Lit une chaîne littérale. | string | PdfParseException pour une chaîne mal formée. | Gère les parenthèses imbriquées et les échappements. |
PdfTokenizer::readHexString() | aucun. | Lit une chaîne hexadécimale. | string | PdfParseException pour un hexadécimal mal formé. | Complète l’hexadécimal de longueur impaire selon les règles du parser. |
PdfTokenizer::readNumber() | aucun. | Lit un entier ou un flottant. | `int | float` | PdfParseException pour un nombre invalide. |
PdfTokenizer::readKeyword() | aucun. | Lit un mot-clé PDF. | string | PdfParseException pour un mot-clé invalide. | Centralise le parsing des mots-clés. |
PdfTokenizer::readDictionary() | aucun. | Lit un dictionnaire PDF. | array | PdfParseException pour des dictionnaires mal formés. | Utilisé pour les objets, les flux et les trailers. |
PdfTokenizer::readArray() | aucun. | Lit un tableau PDF. | array | PdfParseException pour des tableaux mal formés. | Utilitaire de parsing récursif. |
PdfTokenizer::readValue() | aucun. | Lit toute valeur PDF prise en charge. | mixed | PdfParseException pour des valeurs mal formées. | Primitive courante du parser. |
PdfTokenizer::readStreamData(int $length) | Longueur du flux. | Lit exactement les octets de flux demandés. | string | PdfParseException pour des limites de flux invalides. | Utilisé après la résolution de la longueur de flux du dictionnaire. |
PdfTokenizer::peek(int $length = 1) | Nombre d’octets. | Lit à l’avance sans avancer le curseur. | string | aucune attendue. | Utile pour le branchement du parser. |
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0) | Motif et offset de départ optionnel. | Recherche en arrière depuis la fin ou l’offset fourni. | `int | false` | aucune attendue. |
PdfTokenizer::readLine() | aucun. | Lit une ligne à partir de l’offset courant. | string | aucune attendue. | Utilitaire de scanner de bas niveau. |
CrossRefParser::parseXRefTable(string $data, int $offset) | Octets PDF et offset de la table xref. | Parse les entrées de table xref classiques. | array | PdfParseException pour des données xref mal formées. | API de parser de bas niveau. |
CrossRefParser::parseXRefStream(string $data, int $offset) | Octets PDF et offset du flux xref. | Parse les entrées de flux xref. | array | PdfParseException pour des données de flux mal formées. | Prend en charge les flux xref PDF modernes. |
Fabriques optionnelles et pool de navigateurs
Section intitulée « Fabriques optionnelles et pool de navigateurs »EInvoiceServiceFactory résout en chargement paresseux les contrats de facturation électronique Premium optionnels (en retournant null quand ils sont absents). BrowserPool est l’utilitaire de cycle de vie Chrome détenu par le renderer, que tu ne gères directement que dans les workers de longue durée.
| Symbole | Paramètres | Comportement par défaut | Retourne | Lève ou échoue avec | Notes |
|---|---|---|---|---|---|
EInvoiceServiceFactory::makeEmbedder() | aucun. | Retourne null sauf si la prise en charge de la facturation électronique Premium Pro est installée. | `EmbedderInterface | null` | Erreurs de construction du package optionnel. |
EInvoiceServiceFactory::makeValidator() | aucun. | Retourne null sauf si la prise en charge de la validation Premium Enterprise est installée. | `ValidatorInterface | null` | Erreurs de construction du package optionnel. |
EInvoiceServiceFactory::makeDefaultProfile() | aucun. | Retourne le profil de facturation électronique par défaut quand il est disponible. | `ProfileInterface | null` | Erreurs du package optionnel. |
EInvoiceServiceFactory::makeSchematronRunner() | aucun. | Retourne null sauf si la prise en charge de Schematron Premium Enterprise est installée. | `SchematronRunnerInterface | null` | Erreurs de construction du package optionnel. |
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null) | Config du renderer et logger optionnel. | Le navigateur ne démarre qu’au premier getBrowser(). | BrowserPool | aucune attendue avant le démarrage du navigateur. | Utilitaire de cycle de vie détenu par le renderer. |
BrowserPool::getBrowser() | aucun. | Démarre ou retourne l’instance courante du navigateur Chrome. | Browser | Erreurs de démarrage du navigateur. | Utilitaire de cycle de vie détenu par le renderer. |
BrowserPool::incrementRenderCount() | aucun. | Incrémente le compteur de rendus et effectue une rotation quand la politique du pool l’exige. | void | Erreurs de cycle de vie du navigateur. | Utilisé par les workers de longue durée. |
BrowserPool::close() | aucun. | Ferme l’instance de navigateur gérée. | void | Erreurs d’arrêt du navigateur. | À appeler lors de l’arrêt du worker. |
Notes de développement
Section intitulée « Notes de développement »- Le renderer n’est pas un sandbox de navigateur pour du HTML non fiable. Valide la taille, la politique de ressources et l’autorisation de l’appelant avant le rendu.
- Les API du parser sont volontairement restreintes. Elles servent à l’import de la sortie de Chrome, pas à la réparation générale de PDF.
- Ferme explicitement les renderers dans les workers de longue durée.