Appendix A: Supported HTML tags

El representador HTML acepta un subconjunto limitado 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 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 bloque
<blockquote>Contenido de bloque con sangría
<ul>, <ol>, <li>Listas anidadas sin orden y ordenadas
<b>, <strong>, <i>, <em>Texto en negrita y cursiva
<sup>, <sub>, <u>Superíndice, subíndice, subrayado, subrayado doble, tachado y sobremarcado
<font>, <span>Atributos heredados de fuente, color, fondo, esquema, modo de representación de texto y fondo redondeado
<a href="...">Hipervínculos HTTP, HTTPS y de archivo

Cascada CSS

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

Los selectores admiten etiqueta, clase, ID, tag.class y combinaciones de descendientes separadas por espacios; se ignoran los selectores de atributo, pseudoselectores y combinadores de hermanos o hijos no compatibles

Las declaraciones coincidentes usan la especificidad de CSS y el orden de origen, las declaraciones en línea tienen prioridad y !important se respeta dentro del subconjunto compatible

Las propiedades compatibles incluyen las propiedades de texto, fondo, fuente, decoración, alineación, line-height, margen, padding, borde, ancho, alto, display y vertical-alignment enumeradas a continuación, además de las propiedades Flexbox, Grid y notas al pie en sus respectivas secciones

Las longitudes aceptan puntos, píxeles a 0.75 puntos por píxel, unidades em, porcentajes y valores en 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 filas distribuyen el espacio libre positivo y negativo por línea flexible, las filas ajustadas se miden de forma independiente y los contenedores de columnas distribuyen una altura explícita o derivada del contenido

Cuadrícula CSS

display:grid y display:inline-grid admiten grid-template-columns, grid-template-rows, pistas fijas, porcentuales y fr, repeat() y minmax() simples, grid-column, grid-row, propiedades de inicio y fin, extensiones, separaciones, colocación automática por fila o columna y alineación por elemento

Un contenedor acepta como máximo 256 elementos directos y 64 filas o columnas; el contenido anidado usa el mismo representador HTML y caché de diseño

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 nota en la parte inferior antes de diseñar las líneas posteriores del cuerpo; una referencia y una nota que no caben 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 el ancho explícito de la tabla o el ancho disponible, las celdas de encabezado usan texto en negrita con fondo claro de forma predeterminada y una fila continúa como una unidad atómica en el siguiente cuadro de texto HTML

Las tablas anidadas, rowspan, la contracción de bordes y el ajuste automático del ancho de columnas según el contenido no forman parte de este subconjunto

Imágenes

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

El renderizador admite ancho, alto, margen, relleno, borde, fondo y alineación izquierda, central o derecha; una dimensión faltante conserva la relación de aspecto natural y las dimensiones omitidas usan 0,75 puntos por píxel de origen

Las fuentes de imagen nunca activan acceso a 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 estilo, 256 bytes por selector, 4096 bytes por bloque de declaración, 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 decodifican y el anidamiento mal formado 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;