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;