Appendix A: Supported HTML tags

HTML renderer prihvata ograničeni podskup za rich text, struktuirane blokove, tabele i eksplicitno mapirane slike

Parametri

<p>, <br>Pasusi i tvrdi prelomi redova, uključujući zastarele atribute poravnanja i razmaka pasusa
<h1> through <h6>Podebljana zaglavlja blokova sa opadajućim podrazumevanim veličinama
<div>, <section>, <article>, <header>, <footer>, <main>Block containers
<blockquote>Uvlačeni sadržaj bloka
<ul>, <ol>, <li>Ugnježdene neuređene i uređene liste
<b>, <strong>, <i>, <em>Podebljan i iskošen tekst
<sup>, <sub>, <u>Eksponent, indeks, podvlačenje, dvostruko podvlačenje, precrtavanje i crta iznad
<font>, <span>Zastareli atributi fonta, boje, pozadine, obruba, režima renderovanja teksta i zaobljene pozadine
<a href="...">HTTP, HTTPS i datotečni hiperveze

CSS kaskada

Pravila mogu stajati u <style> elementima ili inline style atributima

Birači podržavaju kombinacije tag, class, ID, tag.class i potomaka po praznini; nepodržani atributni birači, pseudo birači i kombinatori brata ili deteta se ignorišu

Odgovarajuće deklaracije koriste CSS specifičnost i redosled izvora, inline deklaracije imaju prednost, a !important se poštuje unutar podržanog podskupa

Podržane osobine uključuju osobine teksta, pozadine, fonta, dekoracije, poravnanja, visine reda, margin, padding, okvira, širine, visine, display i vertikalnog poravnanja navedene ispod, plus Flexbox, Grid i footnote osobine u svojim odeljcima

Dužine prihvataju tačke, piksele po 0.75 tačaka po pikselu, em jedinice, procente i tačkane vrednosti bez jedinice; veličine fontova prihvataju i standardnu skalu ključnih reči od xx-small do xx-large

Flexbox

display:flex i display:inline-flex podržavaju flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap i column-gap

Redni kontejneri raspodeljuju pozitivan i negativan slobodan prostor po flex liniji, prelomljeni redovi mere se nezavisno, a kolonski kontejneri raspodeljuju eksplicitnu ili iz sadržaja izvedenu visinu

CSS Grid

display:grid i display:inline-grid podržavaju grid-template-columns, grid-template-rows, fiksne, procentne i fr trake, jednostavan repeat() i minmax(), grid-column, grid-row, osobine start i end, opsege, razmake, automatsko smeštanje po redu ili koloni i poravnanje po stavci

Jedan kontejner prima najviše 256 direktnih stavki i 64 reda ili kolona; ugnježđeni sadržaj koristi isti HTML render i keš rasporeda

Fusnote

<footnote>, <aside style="float:footnote"> i <aside role="doc-footnote"> prave numerisane fusnote

Konačni tekstualni okviri rezervišu oblast za napomenu pri dnu pre slaganja kasnijih redova tela; referenca i napomena koje zajedno ne stanu prelaze na sledeći okvir, a stanje nastavka čuva numeraciju

Tabele

<table>, <tr>, <td> i <th> renderuju izmerene redove sa pozadinama, padding-om, okvirima, stilovima teksta i colspan-om do 64 kolone

Kolone dele eksplicitnu ili dostupnu širinu tabele jednako, ćelije zaglavlja podrazumevano imaju podebljan tekst sa svetlom pozadinom, a red se nastavlja kao jedna atomska jedinica u sledećem HTML tekstualnom okviru

Ugnježdene tabele, rowspan, spajanje ivica i automatsko određivanje širina kolona prema sadržaju nisu deo ovog podskupa

Slike

<img src="name"> crta sliku ranije vezanu sa SetHTMLImage

Renderer podržava širinu, visinu, margin, padding, okvir, pozadinu i poravnanje levo, centar ili desno; jedna nedostajuća dimenzija čuva prirodni odnos stranica, a izostavljene dimenzije koriste 0.75 tačke po izvornom pikselu

Izvori slika nikada ne okidaju pristup mreži ili datotekama, merenje ne registruje resurse, a ponovljena upotreba ponovo koristi vezani XObject slike

Granice i oporavak

Jedan HTML ulaz prihvata najviše 2048 pravila stilova, 256 bajtova po biraču, 4096 bajtova po bloku deklaracija, 4096 redova tabele i 4096 ćelija tabele

Nepoznate osobine, birači, tagovi i atributi se ignorišu dok se okolni tekst čuva; znakovne reference se dekoduju, a deformisano ugnježdenje se konzervativno zatvara

Primer

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;