Appendix A: Supported HTML tags
Il renderer HTML accetta un sottoinsieme limitato per rich text, blocchi, tabelle e immagini associate
Parametri
<p>, <br> | Paragrafi e interruzioni di riga forzate, inclusi gli attributi legacy di allineamento e spaziatura dei paragrafi |
|---|---|
<h1> through <h6> | Intestazioni dei blocchi in grassetto con dimensioni predefinite decrescenti |
<div>, <section>, <article>, <header>, <footer>, <main> | Contenitori a blocchi |
<blockquote> | Contenuto del blocco rientrato |
<ul>, <ol>, <li> | Elenchi ordinati e non ordinati annidati |
<b>, <strong>, <i>, <em> | Testo in grassetto e corsivo |
<sup>, <sub>, <u> | Apice, pedice, sottolineatura, doppia sottolineatura, barrato e sovralineatura |
<font>, <span> | Attributi legacy di font, colore, sfondo, contorno, modalità di rendering del testo e sfondo arrotondato |
<a href="..."> | Collegamenti ipertestuali HTTP, HTTPS e file |
Cascata CSS
Le regole possono comparire negli elementi <style> o negli attributi style inline
I selettori supportano tag, classe, ID, tag.class e combinazioni di discendenti separate da spazi; i selettori di attributo e gli pseudoselettori non supportati, nonché i combinatori di elementi adiacenti o figlio, vengono ignorati
Le dichiarazioni corrispondenti usano specificità CSS e ordine sorgente, quelle inline hanno priorità e !important è rispettato nel sottoinsieme supportato
Le proprietà supportate includono testo, sfondo, font, decorazione, allineamento, interlinea, margini, spaziatura, bordo, dimensioni, display, allineamento verticale, Flexbox, Grid e note
Le lunghezze accettano punti, pixel a 0.75 punti per pixel, unità em, percentuali e valori senza unità espressi in punti; le dimensioni dei caratteri accettano inoltre la scala standard di parole chiave da xx-small a xx-large
Flexbox
display:flex e display:inline-flex supportano flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap e column-gap
I contenitori di righe distribuiscono lo spazio libero positivo e negativo per ciascuna linea flex, le righe mandate a capo vengono misurate indipendentemente e i contenitori di colonne distribuiscono un'altezza esplicita o derivata dal contenuto
CSS Grid
display:grid e display:inline-grid supportano grid-template-columns, grid-template-rows, tracce fisse, percentuali e fr, repeat(), minmax(), grid-column, grid-row, span, gap, posizionamento automatico e allineamento
Un contenitore accetta al massimo 256 elementi diretti e 64 righe o colonne; il contenuto annidato usa lo stesso renderer HTML e la stessa cache del layout
Note a piè di pagina
<footnote>, <aside style="float:footnote"> e <aside role="doc-footnote"> creano note numerate
Le caselle finite riservano l'area note prima delle righe successive; riferimento e nota che non entrano insieme passano al frame successivo preservando la numerazione
Tabelle
<table>, <tr>, <td> e <th> generano righe misurate con sfondi, spaziatura interna, bordi, stili di testo e colspan fino a 64 colonne
Le colonne dividono equamente la larghezza esplicita o disponibile della tabella, le celle di intestazione usano per impostazione predefinita testo in grassetto con uno sfondo chiaro e ogni riga prosegue come unità indivisibile nella casella di testo HTML successiva
Le tabelle annidate, rowspan, l'unione dei bordi e il dimensionamento automatico delle colonne basato sul contenuto non fanno parte di questo sottoinsieme
Immagini
<img src="name"> disegna un'immagine associata in precedenza con SetHTMLImage
Il renderer supporta larghezza, altezza, margine, spaziatura interna, bordo, sfondo e allineamento a sinistra, al centro o a destra; se manca una dimensione viene mantenuto il rapporto di formato naturale, mentre le dimensioni omesse usano 0,75 punti per pixel sorgente
Le sorgenti immagine non accedono mai a rete o file, la misurazione non registra risorse e l'uso ripetuto riutilizza l'XObject immagine associato
Limiti e ripristino
Un input HTML accetta al massimo 2048 regole CSS, 256 byte per selettore, 4096 per blocco dichiarazioni, 4096 righe e 4096 celle di tabella
Proprietà, selettori, tag e attributi sconosciuti vengono ignorati conservando il testo; riferimenti carattere decodificati e annidamento non valido chiuso prudentemente
Esempio
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;