Appendix A: Supported HTML tags

El renderizador HTML acepta un subconjunto delimitado para texto enriquecido, bloques estructurados, tablas e imágenes asignadas explícitamente

Parámetros

<p>, <br>Párrafos y saltos de línea forzados, incluidos los atributos heredados de alineación y espaciado de párrafos
<h1> through <h6>Encabezados de bloque en negrita con tamaños predeterminados decrecientes
<div>, <section>, <article>, <header>, <footer>, <main>Contenedores de bloques
<blockquote>Contenido del bloque sangrado
<ul>, <ol>, <li>Listas desordenadas y ordenadas anidadas
<b>, <strong>, <i>, <em>Texto en negrita y cursiva
<sup>, <sub>, <u>Superíndice, subíndice, subrayado, subrayado doble, tachado y suprarrayado
<font>, <span>Atributos heredados de fuente, color, fondo, contorno, modo de renderizado de texto y fondo redondeado
<a href="...">Hipervínculos HTTP, HTTPS y de archivo

Cascada CSS

Las reglas pueden aparecer en elementos <style> o en atributos style en línea

Los selectores admiten etiquetas, clases, identificadores, tag.class y combinaciones de descendientes separadas por espacios; se omiten los selectores de atributos y pseudoselectores no compatibles, así como los combinadores de elementos hermanos o secundarios

Las declaraciones coincidentes usan especificidad CSS y orden de origen; las declaraciones en línea tienen prioridad y se respeta !important en el subconjunto admitido

Las propiedades compatibles incluyen las propiedades de texto, fondo, fuente, decoración, alineación, altura de línea, margen, relleno, borde, anchura, altura, visualización y alineación vertical que se indican a continuación, además de las propiedades de Flexbox, Grid y notas al pie de sus respectivas secciones

Las longitudes aceptan puntos, píxeles a razón de 0,75 puntos por píxel, unidades em, porcentajes y valores de puntos sin unidad; los tamaños de fuente también aceptan la escala estándar de palabras clave desde xx-small hasta xx-large

Flexbox

display:flex y display:inline-flex admiten flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap y column-gap

Los contenedores de fila distribuyen el espacio libre positivo y negativo por línea flex, las filas ajustadas se miden de forma independiente y los contenedores de columna distribuyen una altura explícita u obtenida del contenido

Cuadrícula CSS

display:grid y display:inline-grid admiten grid-template-columns, grid-template-rows, pistas fijas, porcentuales y fr, las formas sencillas de repeat() y minmax(), grid-column, grid-row, propiedades iniciales y finales, extensiones, separaciones, colocación automática por filas o columnas y alineación por elemento

Un contenedor admite como máximo 256 elementos directos y 64 filas o columnas; el contenido anidado utiliza el mismo renderizador HTML y caché de maquetación

Notas al pie

<footnote>, <aside style="float:footnote"> y <aside role="doc-footnote"> crean notas numeradas

Los cuadros de texto finitos reservan el área de notas de la parte inferior antes de disponer las líneas posteriores del cuerpo; una referencia y una nota que no quepan juntas continúan en el siguiente marco y el estado de continuación conserva la numeración

Tablas

<table>, <tr>, <td> y <th> renderizan filas medidas con fondos, relleno, bordes, estilos de texto y colspan de hasta 64 columnas

Las columnas dividen por igual la anchura explícita o disponible de la tabla, las celdas de encabezado utilizan de forma predeterminada texto en negrita con un fondo claro y cada fila continúa como una unidad atómica en el siguiente cuadro de texto HTML

Las tablas anidadas, rowspan, el colapso de bordes y el dimensionamiento automático de columnas según el contenido no forman parte de este subconjunto

Imágenes

<img src="name"> dibuja una imagen vinculada previamente mediante SetHTMLImage

El renderizador admite anchura, altura, margen, relleno, borde, fondo y alineación; una dimensión ausente conserva la proporción y ambas ausentes usan 0,75 puntos por píxel

Los orígenes de imagen nunca activan el acceso a la red ni a archivos, la medición no registra recursos y el uso repetido reutiliza el XObject de imagen vinculado

Límites y recuperación

Una entrada HTML acepta como máximo 2048 reglas de hoja de estilos, 256 bytes por selector, 4096 bytes por bloque de declaraciones, 4096 filas de tabla y 4096 celdas de tabla

Las propiedades, selectores, etiquetas y atributos desconocidos se ignoran mientras se conserva el texto circundante; las referencias de caracteres se descodifican y el anidamiento incorrecto se cierra de forma conservadora

Ejemplo

var
  LogoID: Integer;
begin
  LogoID := PDF.AddImageFromFile('logo.png');
  PDF.SetHTMLImage('brand-logo', LogoID);
  PDF.DrawHTMLTextBox(50, 750, 420, 180,
    '<style>.report h2 { color:#204080; } table { border:1pt solid #808080; }</style>' +
    '<section class="report"><h2>Quarterly report</h2>' +
    '<img src="brand-logo" width="72pt">' +
    '<table><tr><th>Region</th><th>Total</th></tr>' +
    '<tr><td>North</td><td>125</td></tr></table></section>');
end;