LibreDTE

RendererWorker extends AbstractWorker
in package
implements RendererWorkerInterface uses StrategiesAwareTrait

Clase para los renderizadores.

Attributes
#[Worker]
$name: 'renderer'
$component: 'document'
$package: 'billing'

Table of Contents

Interfaces

RendererWorkerInterface
Interfaz para los renderizadores.

Properties

$optionsSchema  : array<string, array<string|int, mixed>|bool>
Esquema de las opciones.
$documentBagManager  : DocumentBagManagerWorkerInterface

Methods

__construct()  : mixed
render()  : RenderResultInterface
Realiza el renderizado del documento.
renderPresentacion()  : string
Renderiza el documento con una presentación específica.
resolveMimeType()  : string
Resuelve el tipo MIME correspondiente al formato de renderizado solicitado (ej. `pdf` => `application/pdf`).
resolvePresentaciones()  : array<string, int>
Resuelve qué presentaciones renderizar y cuántas copias de cada una, a partir de la opción `renderer.renderings` de la bolsa.

Properties

$optionsSchema

Esquema de las opciones.

protected array<string, array<string|int, mixed>|bool> $optionsSchema = ['__allowUndefinedKeys' => true, 'strategy' => ['types' => 'string', 'default' => 'template.estandar'], 'format' => ['types' => 'string', 'default' => 'pdf'], 'renderings' => ['types' => 'array', 'default' => [\libredte\lib\Core\Package\Billing\Component\Document\Enum\TipoPresentacion::TRIBUTARIA->value => 1]]]

Methods

render()

Realiza el renderizado del documento.

public render(DocumentBagInterface $bag) : RenderResultInterface
Parameters
$bag : DocumentBagInterface

Bolsa con los datos del documento a renderizar.

Attributes
#[Operation]
$parameters: ['bag' => ['example' => ['xmlDocument' => '', 'options' => ['renderer' => ['format' => 'pdf', 'renderings' => ['tributaria' => 1, 'cedible' => 1]]]]]]
Return values
RenderResultInterface

Resultado del renderizado (el o los archivos generados, ej. el PDF).

renderPresentacion()

Renderiza el documento con una presentación específica.

private renderPresentacion(RendererStrategyInterface $strategy, DocumentBagInterface $bag, string $presentacion) : string

Le indica a la estrategia (y, a través de ella, a la plantilla) qué presentación renderizar vía bag.options.renderer.presentation, dejando el valor solo mientras dura esta llamada.

Parameters
$strategy : RendererStrategyInterface
$bag : DocumentBagInterface

Bolsa (ya normalizada) del documento.

$presentacion : string

Valor de TipoPresentacion a renderizar.

Tags
throws
RendererException

Si la estrategia de renderizado falla.

Return values
string

resolveMimeType()

Resuelve el tipo MIME correspondiente al formato de renderizado solicitado (ej. `pdf` => `application/pdf`).

private resolveMimeType(string $format) : string
Parameters
$format : string

Formato de renderizado (ej. pdf, html).

Return values
string

resolvePresentaciones()

Resuelve qué presentaciones renderizar y cuántas copias de cada una, a partir de la opción `renderer.renderings` de la bolsa.

private resolvePresentaciones(OptionsInterface $options, DocumentBagInterface $bag) : array<string, int>

Una presentación cedible solicitada para un tipo de documento que no admite acuse de recibo se omite en silencio (no es un error: es una combinación válida que simplemente no genera nada para esa presentación).

Parameters
$options : OptionsInterface

Opciones ya resueltas del worker.

$bag : DocumentBagInterface

Bolsa (ya normalizada) del documento.

Tags
throws
RendererException

Si se solicita una presentación que no corresponde a ningún caso de TipoPresentacion.

Return values
array<string, int>

Cantidad de copias por presentación (TipoPresentacion::value), solo las que sí se van a renderizar.

On this page

Search results