Appendix A: Supported HTML tags

Le moteur de rendu HTML accepte un sous-ensemble borné pour le texte enrichi, les blocs structurés, les tableaux et les images explicitement associées

Paramètres

<p>, <br>Paragraphes et sauts de ligne forcés, y compris les attributs hérités d'alignement et d'espacement des paragraphes
<h1> through <h6>Titres de bloc en gras avec des tailles par défaut décroissantes
<div>, <section>, <article>, <header>, <footer>, <main>Conteneurs de blocs
<blockquote>Contenu de bloc en retrait
<ul>, <ol>, <li>Listes non ordonnées et ordonnées imbriquées
<b>, <strong>, <i>, <em>Texte gras et italique
<sup>, <sub>, <u>Exposant, indice, soulignement, double soulignement, barré et surlignement
<font>, <span>Attributs hérités de police, de couleur, d'arrière-plan, de contour, de mode de rendu du texte et d'arrière-plan arrondi
<a href="...">Liens hypertexte HTTP, HTTPS et de fichiers

Cascade CSS

Les règles peuvent apparaître dans des éléments <style> ou des attributs style en ligne

Les sélecteurs acceptent balise, classe, ID, tag.class et combinaisons descendantes par espace ; les sélecteurs d'attribut, pseudo-sélecteurs et combinateurs frère ou enfant non pris en charge sont ignorés

Les déclarations correspondantes utilisent la spécificité CSS et l'ordre source, les déclarations incorporées ont priorité et !important est respecté dans le sous-ensemble pris en charge

Les propriétés prises en charge comprennent celles de texte, arrière-plan, police, décoration, alignement, hauteur de ligne, marge, marge intérieure, bordure, largeur, hauteur, affichage et alignement vertical énumérées ci-dessous, ainsi que les propriétés Flexbox, Grid et de notes de bas de page dans leurs sections respectives

Les longueurs acceptent les points, les pixels à raison de 0,75 point par pixel, les unités em, les pourcentages et les valeurs sans unité exprimées en points ; les tailles de police acceptent également l’échelle de mots-clés standard de xx-small à xx-large

Flexbox

display:flex et display:inline-flex prennent en charge flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap et column-gap

Les conteneurs de lignes répartissent l'espace libre positif ou négatif par ligne flex, mesurent indépendamment les lignes renvoyées et les colonnes répartissent une hauteur explicite ou dérivée du contenu

Grille CSS

display:grid et display:inline-grid prennent en charge grid-template-columns, grid-template-rows, les pistes fixes, en pourcentage et fr, repeat() et minmax() simples, grid-column, grid-row, propriétés de début et fin, étendues, espaces, placement automatique par ligne ou colonne et alignement par élément

Un conteneur accepte au maximum 256 éléments directs et 64 lignes ou colonnes ; le contenu imbriqué utilise le même moteur de rendu HTML et le même cache de disposition

Notes de bas de page

<footnote>, <aside style="float:footnote"> et <aside role="doc-footnote"> créent des notes numérotées

Les zones de texte finies réservent l’espace des notes au bas avant de mettre en page les lignes de corps suivantes ; une référence et sa note qui ne tiennent pas ensemble passent au cadre suivant, et l’état de continuation conserve la numérotation

Tableaux

<table>, <tr>, <td> et <th> restituent des lignes mesurées avec arrière-plans, marges intérieures, bordures, styles de texte et colspan, jusqu’à 64 colonnes

Les colonnes divisent également la largeur explicite ou disponible, les cellules d'en-tête sont en gras sur fond clair et une ligne continue comme unité atomique dans la prochaine boîte HTML

Les tableaux imbriqués, rowspan, la fusion des bordures et le dimensionnement automatique des colonnes selon le contenu ne font pas partie de ce sous-ensemble

Images

<img src="name"> dessine une image précédemment liée avec SetHTMLImage

Le moteur de rendu prend en charge largeur, hauteur, marge, marge intérieure, bordure, arrière-plan et alignement à gauche, au centre ou à droite ; une dimension manquante préserve les proportions naturelles et des dimensions omises utilisent 0,75 point par pixel source

Les sources d'image ne déclenchent jamais d'accès réseau ou fichier, la mesure n'enregistre pas de ressources et les utilisations répétées réutilisent l'Image XObject lié

Limites et récupération

Une entrée HTML accepte au maximum 2048 règles de feuille de style, 256 octets par sélecteur, 4096 octets par bloc de déclaration, 4096 lignes et 4096 cellules de tableau

Les propriétés, sélecteurs, balises et attributs inconnus sont ignorés en préservant le texte ; les références de caractères sont décodées et les imbrications mal formées fermées prudemment

Exemple

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;