Referencia de API de Artisan
De un vistazo
Sección titulada «De un vistazo»El paquete Artisan (nextpdf/artisan) expone dos grupos de APIs relacionadas: una superficie de renderizado basada en Chrome — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator, BrowserPool — que convierte un fragmento de HTML en un PDF producido por Chrome, y una superficie acotada de parser/importer — PdfReader, PageImporter, ImportedFormXObject, y clases auxiliares de tokenizer/xref — que vuelve a incrustar esa salida renderizada en un documento NextPDF como un Form XObject con texto seleccionable.
Para empezar: si solo se necesita un PDF a partir de HTML, rara vez hace falta tocar este paquete directamente. Basta con adjuntar un ChromeRendererConfig a un Document de NextPDF y llamar a writeHtmlChrome() (consulta el quickstart). Usar las clases siguientes solo cuando se incrusta un renderer en un worker o se ejecutan diagnósticos del parser. El primer ejemplo de Tareas comunes muestra esa vía de una sola llamada.
Tareas comunes
Sección titulada «Tareas comunes»Los tres flujos siguientes cubren casi todos los usos reales, desde la llamada de más alto nivel hasta la pipeline explícita de render e importación. Cada ejemplo está verificado contra nextpdf-Artisan/src (y el README.md / ci/tests/ del paquete).
Renderizar un fragmento de HTML a un PDF con texto seleccionable: la única llamada canónica.
<?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');Qué hace: Chrome maqueta el fragmento y el puente incrusta la página 0 como un Form XObject para que el texto siga siendo seleccionable. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static ajusta la altura automáticamente cuando $height es null.
Ejecutar el renderer e importar la página directamente: la pipeline explícita detrás de writeHtmlChrome(), para workers y colocación personalizada.
<?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();}Qué hace: renderiza a bytes PDF de Chrome, los parsea e importa la página 0 a un ImportedFormXObject que se puede colocar. Llamar siempre a close() en el renderer para liberar el proceso de Chrome.
Construir la configuración a partir de un array de estilo framework: para config/*.php o parámetros de bundle en lugar de argumentos del constructor escritos a mano.
<?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,]);Qué hace: mapea un array de configuración en snake-case al constructor; las claves no definidas vuelven a los valores predeterminados, y chrome_binary se aplica solo cuando es una cadena no vacía.
Renderer de Chrome
Sección titulada «Renderer de Chrome»Estos tipos inicializan y ejecutan un render: construir un ChromeRendererConfig, entregarlo a un ChromeHtmlRenderer y luego llamar a render() para obtener un ChromeRenderResult.
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false) | Ruta del binario, timeout, CSS, límite de tamaño del HTML, flag del sandbox. | Detecta Chrome automáticamente cuando la ruta del binario es null; el sandbox permanece activado salvo que se desactive. | ChromeRendererConfig | no se espera ninguno. | Activar noSandbox solo cuando el entorno de ejecución lo exige. |
ChromeRendererConfig::fromArray(array $config) | chrome_binary, render_timeout, default_css, max_html_size, no_sandbox. | Los valores ausentes usan los predeterminados del constructor. | ChromeRendererConfig | Ante discrepancias de tipo, se vuelven a usar los valores predeterminados para las claves opcionales. | Coincide con los arrays de configuración de estilo framework. |
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null) | Configuración, logger opcional, política opcional de HTML de la capa de parseo. | Usa DefaultHtmlSecurityPolicy cuando no se proporciona ninguna política. | ChromeHtmlRenderer | Los errores de configuración de Chrome aparecen en el primer render. | El renderer mantiene un pool de navegadores hasta close(). |
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0) | html: fragmento de entrada; widthPt: ancho del papel; heightPt: altura objetivo o automática. | Calcula automáticamente la altura del contenido cuando heightPt <= 0. | ChromeRenderResult | ChromeRenderException; fallo de validación del tamaño del HTML. | Bloquea las solicitudes de red de subrecursos a través de CDP. |
ChromeHtmlRenderer::getHtmlSecurityPolicy() | ninguno. | Devuelve la política configurada de la capa de parseo. | HtmlSecurityPolicyInterface | no se espera ninguno. | Complementa los controles de Chrome a nivel de transporte. |
ChromeHtmlRenderer::close() | ninguno. | Cierra el pool de navegadores y lo vacía. | void | Los errores de apagado del navegador pueden aflorar desde la biblioteca subyacente. | Llamarlo durante el apagado del worker. |
Política de seguridad de HTML
Sección titulada «Política de seguridad de HTML»Usar estos métodos cuando se valida y se envuelve HTML externo antes de un render, en lugar de pasar por ChromeHtmlRenderer::render() (que ya los llama).
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
ChromeSecurityPolicy::validate(string $html, int $maxSize) | Entrada HTML y tamaño máximo en bytes. | Acepta la entrada solo cuando el tamaño y las construcciones no permitidas superan la validación. | void | ChromeRenderException o excepción de validación. | Ejecutarlo antes del renderizado en el navegador cuando se acepta HTML externo. |
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '') | Fragmento de HTML, ancho del viewport, CSS predeterminado opcional. | Produce un documento completo de render alrededor del fragmento. | string | Errores de validación o de construcción de la cadena. | Mantiene el CSS específico del renderer separado del HTML de la aplicación. |
Auxiliares de resultado y conversión
Sección titulada «Auxiliares de resultado y conversión»Estos tipos permiten leer la salida de un render (ChromeRenderResult) y mapear entre puntos PDF y píxeles CSS de Chrome al dimensionar un viewport o calcular la altura.
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx) | Bytes PDF en bruto, ancho, altura, altura del contenido medida. | Sin validación más allá de las propiedades tipadas del constructor. | ChromeRenderResult | no se espera ninguno. | Normalmente lo devuelve ChromeHtmlRenderer::render(). |
ChromeRenderResult::getPdfData() | ninguno. | Devuelve los bytes PDF en bruto producidos por Chrome. | string | no se espera ninguno. | Úsalo con PdfReader y PageImporter al incrustar. |
ChromeRenderResult::getWidthPt() | ninguno. | Devuelve el ancho solicitado en puntos. | float | no se espera ninguno. | Se usa para dimensionar el objeto de formulario importado. |
ChromeRenderResult::getHeightPt() | ninguno. | Devuelve la altura calculada o solicitada en puntos. | float | no se espera ninguno. | La altura automática incluye un margen para la maquetación de impresión. |
ViewportCalculator::pointsToCssPx(float $pt) | pt: puntos PDF. | Convierte usando 96 px CSS por cada 72 puntos PDF. | int | no se espera ninguno. | Se redondea para el ancho del viewport de Chrome. |
ViewportCalculator::cssPxToPoints(float $px) | px: píxeles CSS. | Convierte usando 72 puntos PDF por cada 96 px CSS. | float | no se espera ninguno. | Se usa para el cálculo de la altura automática. |
APIs de importación y del parser
Sección titulada «APIs de importación y del parser»Esta es la vía principal de importación: parsear los bytes PDF de Chrome con PdfReader y luego entregar el lector a PageImporter::import() para obtener una página incrustable; los métodos restantes de PdfReader sirven de apoyo para diagnósticos.
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
new PdfReader(string $data) | data: bytes PDF completos. | El parser no se ejecuta hasta parse(). | PdfReader | no se espera ninguno. | Diseñado para PDFs generados por Chrome. |
PdfReader::parse() | ninguno. | Parsea la cadena de xref y el trailer. | void | PdfParseException para una estructura de PDF inválida. | Debe llamarse antes de acceder a object/page. |
PdfReader::getObject(int $objNum) | Número de objeto. | Resuelve el objeto parseado por número. | PdfObject | PdfParseException cuando falta el objeto o está malformado. | Usarlo después de parse(). |
PdfReader::getTrailer() | ninguno. | Devuelve el diccionario del trailer parseado. | array | PdfParseException cuando los datos del trailer no están disponibles. | Lo usan los diagnósticos y el análisis de revisiones. |
PdfReader::getObjectNumbers() | ninguno. | Devuelve los números de objeto parseados. | array | no se espera ninguno después de parsear. | Útil para los diagnósticos del importador. |
PdfReader::getPage(int $pageIndex) | pageIndex: índice de página de base cero. | Sin parseo implícito. | PdfObject | PdfParseException cuando falta la página o está fuera de rango. | El importador usa de forma predeterminada la página 0. |
PdfReader::getPageContentStream(PdfObject $page) | page: objeto de página parseado. | Resuelve el stream de contenido. | string | PdfParseException para streams inválidos. | Un stream vacío provoca un fallo del importador. |
PdfReader::getPageResources(PdfObject $page) | page: objeto de página parseado. | Resuelve los recursos de la página. | array | PdfParseException para recursos inválidos. | El diccionario de recursos se incrusta junto con el objeto de formulario. |
PdfReader::getPageMediaBox(PdfObject $page) | page: objeto de página parseado. | Usa dimensiones similares a A4 cuando está ausente. | array | Fallos del parser. | Devuelve coordenadas del espacio PDF. |
PdfReader::resolveRef(mixed $value) | Valor ya parseado. | Resuelve referencias de objeto de forma recursiva cuando corresponde. | mixed | PdfParseException para referencias inválidas. | Auxiliar interno expuesto para los flujos de trabajo del importador. |
PdfReader::collectPageResources(PdfObject $page) | page: objeto de página parseado. | Recorre las referencias de recursos de la página. | array | Fallos del parser. | Se usa para incrustar objetos dependientes con las páginas importadas. |
PdfReader::getRevisionCount() | ninguno. | Cuenta las revisiones incrementales parseadas. | int | no se espera ninguno después de parsear. | Útil para PDFs firmados o actualizados de forma incremental. |
PdfReader::getRevisionXRef(int $index) | Índice de revisión de base cero. | Devuelve una tabla de xref de revisión. | RevisionXRefTable | PdfParseException para un índice inválido. | Usarlo para diagnósticos de revisión de bajo nivel. |
PdfReader::getRevisions() | ninguno. | Devuelve todas las tablas de xref de revisión parseadas. | array | no se espera ninguno después de parsear. | Vista de solo lectura del estado del parser. |
PageImporter::import(PdfReader $reader, int $pageIndex = 0) | Lector ya parseado e índice de página de base cero. | Importa la primera página cuando se omite. | ImportedFormXObject | PdfParseException cuando no se puede extraer la página. | Recopila el stream de contenido, la media box, los recursos y los objetos referenciados. |
Objetos de apoyo del parser
Sección titulada «Objetos de apoyo del parser»Estos son los objetos de valor y los auxiliares que el parser devuelve o usa internamente: usarlos al inspeccionar objetos importados, recursos, streams o tablas de revisión.
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict) | Stream de contenido decodificado, media box, objetos incrustados, diccionario de recursos. | Almacena un payload de formulario importado autocontenido. | ImportedFormXObject | no se espera ninguno. | Normalmente lo devuelve PageImporter::import(). |
ImportedFormXObject::getWidth() | ninguno. | Devuelve el ancho del formulario importado en puntos. | float | no se espera ninguno. | Úsalo al colocar la salida de Chrome en una página. |
ImportedFormXObject::getHeight() | ninguno. | Devuelve la altura del formulario importado en puntos. | float | no se espera ninguno. | Los resultados de renderizado con altura automática se propagan a través de este valor. |
ImportedFormXObject::getEmbeddedObjects() | ninguno. | Devuelve los objetos que requiere el formulario importado. | array | no se espera ninguno. | El código del writer usa estos objetos para preservar los recursos. |
ImportedFormXObject::getResourcesDict() | ninguno. | Devuelve el diccionario de recursos importado. | array | no se espera ninguno. | Se usa al construir el Form XObject. |
ImportedFormXObject::getMediaBox() | ninguno. | Devuelve la media box importada. | array | no se espera ninguno. | Úsalo para diagnósticos de colocación. |
ImportedFormXObject::getContentStream() | ninguno. | Devuelve el stream de contenido de la página importada. | string | no se espera ninguno. | Pensado para la integración de writer/import. |
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null) | Número de objeto, generación, diccionario parseado, bytes de stream opcionales, stream decodificado opcional, bytes de diccionario en bruto opcionales. | Almacena el estado del objeto parseado. | PdfObject | no se espera ninguno. | Lo crean las rutinas internas del parser. |
PdfObject::getRawDictionaryBytes() | ninguno. | Devuelve los bytes originales del diccionario cuando están disponibles. | `string | null` | no se espera ninguno. |
PdfObject::getRawStreamData() | ninguno. | Devuelve los bytes del stream sin decodificar cuando están disponibles. | `string | null` | no se espera ninguno. |
PdfObject::getDictionary() | ninguno. | Devuelve las entradas del diccionario parseadas. | array | no se espera ninguno. | Vista de solo lectura del parser. |
PdfObject::get(string $key) | Clave del diccionario. | Devuelve null cuando la clave está ausente. | mixed | no se espera ninguno. | Evita que el código llamador tenga que parsear diccionarios en bruto. |
PdfObject::getRef(string $key) | Clave del diccionario. | Devuelve la tupla de referencia de objeto cuando el valor es una referencia. | `array | null` | no se espera ninguno. |
PdfObject::getArray(string $key) | Clave del diccionario. | Devuelve un valor de array o un array vacío cuando no está disponible. | array | no se espera ninguno. | Envoltorio de conveniencia para las entradas de diccionario cuyo valor es un array. |
PdfObject::hasStream() | ninguno. | Comprueba si hay bytes de stream presentes. | bool | no se espera ninguno. | Distingue los objetos que solo tienen diccionario. |
PdfObject::getType() | ninguno. | Lee /Type. | `string | null` | no se espera ninguno. |
PdfObject::getSubtype() | ninguno. | Lee /Subtype. | `string | null` | no se espera ninguno. |
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision) | Bytes PDF, un lector ya parseado y el índice de revisión de base cero. | Extrae una revisión incremental. | string | PdfParseException para límites inválidos. | Lo usan las pruebas y los diagnósticos del parser. |
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader) | Bytes PDF y un lector ya parseado. | Descubre los rangos de bytes de las revisiones incrementales. | array | PdfParseException para una estructura de xref malformada. | Ayuda a analizar PDFs firmados o actualizados de forma incremental. |
| `StreamDecoder::decode(string $data, string | array $filter)` | Bytes del stream y uno o más filtros PDF. | Aplica los filtros en orden. | string | PdfParseException para filtros no soportados o inválidos. |
new ResourceCollector(PdfReader $reader) | Lector ya parseado. | Empieza con un conjunto vacío de objetos recopilados. | ResourceCollector | no se espera ninguno. | Lo usa PdfReader::collectPageResources(). |
ResourceCollector::traverse(mixed $value, int $depth = 0) | Valor ya parseado y profundidad de recursión. | Recorre las referencias de recursos hasta los límites de profundidad internos. | void | Fallos del parser por referencias inválidas. | Auxiliar interno para el cierre de recursos de la importación de páginas. |
ResourceCollector::getCollected() | ninguno. | Devuelve los objetos de recursos recopilados. | array | no se espera ninguno. | Llámalo después de traverse(). |
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset) | Índice de revisión, offset de xref, entradas de xref, trailer, offset anterior opcional. | Instantánea inmutable de una revisión incremental. | RevisionXRefTable | no se espera ninguno. | Lo crean las rutinas internas del parser. |
RevisionXRefTable::getObjectNumbers() | ninguno. | Devuelve los números de objeto activos en la tabla de revisión. | array | no se espera ninguno. | API de diagnóstico de revisión de bajo nivel. |
RevisionXRefTable::getActiveObjectCount() | ninguno. | Cuenta los objetos activos. | int | no se espera ninguno. | Útil para las aserciones del parser. |
RevisionXRefTable::hasRootUpdate() | ninguno. | Indica si la revisión actualiza la raíz del documento. | bool | no se espera ninguno. | Útil para el análisis de actualizaciones incrementales. |
RevisionXRefTable::getSize() | ninguno. | Devuelve el valor de tamaño de la tabla de xref. | int | no se espera ninguno. | Refleja los metadatos de xref del PDF parseado. |
APIs de bajo nivel del tokenizer y de xref
Sección titulada «APIs de bajo nivel del tokenizer y de xref»Usar estos tipos solo para diagnósticos profundos del parser o para reducir fixtures: exponen el lexer y la maquinaria de cross-reference que hay debajo de PdfReader y no son necesarios para la importación normal.
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
new PdfTokenizer(string $data, int $offset = 0) | Bytes PDF y offset inicial opcional. | Empieza en el offset cero. | PdfTokenizer | no se espera ninguno. | Parser léxico de bajo nivel. |
PdfTokenizer::getOffset() | ninguno. | Devuelve el offset de bytes actual. | int | no se espera ninguno. | Auxiliar de diagnóstico para los errores del parser. |
PdfTokenizer::setOffset(int $offset) | Desplazamiento en bytes. | Mueve el cursor del tokenizer. | void | PdfParseException para un offset inválido. | Usarlo con cuidado; el código llamador es responsable del estado del parser. |
PdfTokenizer::isEof() | ninguno. | Comprueba si el cursor llegó al final. | bool | no se espera ninguno. | Auxiliar de bucle del parser de bajo nivel. |
PdfTokenizer::skipWhitespace() | ninguno. | Avanza más allá del espacio en blanco y los comentarios del PDF. | void | no se espera ninguno. | Se usa antes de las lecturas de tokens. |
PdfTokenizer::readToken() | ninguno. | Lee el siguiente token escalar. | `string | int | float |
PdfTokenizer::readName() | ninguno. | Lee un objeto de nombre PDF. | string | PdfParseException para un nombre malformado. | Decodifica los escapes del nombre. |
PdfTokenizer::readLiteralString() | ninguno. | Lee una cadena literal. | string | PdfParseException para una cadena malformada. | Maneja paréntesis anidados y escapes. |
PdfTokenizer::readHexString() | ninguno. | Lee una cadena hexadecimal. | string | PdfParseException para un hex malformado. | Rellena el hex de longitud impar según las reglas del parser. |
PdfTokenizer::readNumber() | ninguno. | Lee un entero o un float. | `int | float` | PdfParseException para un número inválido. |
PdfTokenizer::readKeyword() | ninguno. | Lee una palabra clave PDF. | string | PdfParseException para una palabra clave inválida. | Mantiene el parseo de palabras clave centralizado. |
PdfTokenizer::readDictionary() | ninguno. | Lee un diccionario PDF. | array | PdfParseException para diccionarios malformados. | Se usa para objetos, streams y trailers. |
PdfTokenizer::readArray() | ninguno. | Lee un array PDF. | array | PdfParseException para arrays malformados. | Auxiliar recursivo del parser. |
PdfTokenizer::readValue() | ninguno. | Lee cualquier valor PDF soportado. | mixed | PdfParseException para valores malformados. | Primitiva común del parser. |
PdfTokenizer::readStreamData(int $length) | Longitud del stream. | Lee exactamente los bytes de stream solicitados. | string | PdfParseException para límites de stream inválidos. | Se usa después de resolver la longitud del stream del diccionario. |
PdfTokenizer::peek(int $length = 1) | Cantidad de bytes. | Lee por adelantado sin avanzar. | string | no se espera ninguno. | Útil para las bifurcaciones del parser. |
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0) | Patrón y offset de inicio opcional. | Busca hacia atrás desde el final o desde el offset proporcionado. | `int | false` | no se espera ninguno. |
PdfTokenizer::readLine() | ninguno. | Lee una línea desde el offset actual. | string | no se espera ninguno. | Auxiliar de escaneo de bajo nivel. |
CrossRefParser::parseXRefTable(string $data, int $offset) | Bytes PDF y offset de la tabla de xref. | Parsea las entradas clásicas de la tabla de xref. | array | PdfParseException para datos de xref malformados. | API del parser de bajo nivel. |
CrossRefParser::parseXRefStream(string $data, int $offset) | Bytes PDF y offset del stream de xref. | Parsea las entradas del stream de xref. | array | PdfParseException para datos de stream malformados. | Soporta los streams de xref de PDF modernos. |
Factories opcionales y pool de navegadores
Sección titulada «Factories opcionales y pool de navegadores»EInvoiceServiceFactory resuelve de forma diferida los contratos opcionales de factura electrónica de Premium (devolviendo null cuando están ausentes). BrowserPool es el auxiliar de ciclo de vida de Chrome, pertenece al renderer y se gestiona directamente solo en workers de larga duración.
| Símbolo | Parámetros | Comportamiento predeterminado | Devuelve | Lanza o falla con | Notas |
|---|---|---|---|---|---|
EInvoiceServiceFactory::makeEmbedder() | ninguno. | Devuelve null salvo que esté instalado el soporte de factura electrónica de Premium Pro. | `EmbedderInterface | null` | Errores opcionales de construcción del paquete. |
EInvoiceServiceFactory::makeValidator() | ninguno. | Devuelve null salvo que esté instalado el soporte de validación de Premium Enterprise. | `ValidatorInterface | null` | Errores opcionales de construcción del paquete. |
EInvoiceServiceFactory::makeDefaultProfile() | ninguno. | Devuelve el perfil de factura electrónica predeterminado cuando está disponible. | `ProfileInterface | null` | Errores opcionales del paquete. |
EInvoiceServiceFactory::makeSchematronRunner() | ninguno. | Devuelve null salvo que esté instalado el soporte de Schematron de Premium Enterprise. | `SchematronRunnerInterface | null` | Errores opcionales de construcción del paquete. |
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null) | Configuración del renderer y logger opcional. | El navegador arranca de forma diferida con la primera getBrowser(). | BrowserPool | no se espera ninguno hasta el arranque del navegador. | Auxiliar de ciclo de vida que pertenece al renderer. |
BrowserPool::getBrowser() | ninguno. | Inicia o devuelve la instancia actual del navegador Chrome. | Browser | Errores de arranque del navegador. | Auxiliar de ciclo de vida que pertenece al renderer. |
BrowserPool::incrementRenderCount() | ninguno. | Incrementa el contador de renders y rota cuando la política del pool lo requiere. | void | Errores del ciclo de vida del navegador. | Lo usan los workers de larga duración. |
BrowserPool::close() | ninguno. | Cierra la instancia del navegador gestionada. | void | Errores de apagado del navegador. | Llámalo durante el apagado del worker. |
Notas de desarrollo
Sección titulada «Notas de desarrollo»- El renderer no es un sandbox de navegador para HTML no confiable. Validar el tamaño, la política de recursos y la autorización del código llamador antes de renderizar.
- Las APIs del parser son deliberadamente acotadas. Sirven para importar la salida de Chrome, no para reparar PDFs en general.
- Cerrar los renderers de forma explícita en los workers de larga duración.