Appendix A: Supported HTML tags
De HTML-renderer accepteert een begrensde subset voor rich text, gestructureerde blokken, tabellen en expliciet gemapte afbeeldingen
Parameters
<p>, <br> | Alinea's en harde regeleinden, inclusief verouderde alinea-uitlijning en afstandsattributen |
|---|---|
<h1> through <h6> | Vette blokkoppen met aflopende standaardgroottes |
<div>, <section>, <article>, <header>, <footer>, <main> | Block containers |
<blockquote> | Inhoud van ingesprongen blok |
<ul>, <ol>, <li> | Geneste ongeordende en geordende lijsten |
<b>, <strong>, <i>, <em> | Vette en cursieve tekst |
<sup>, <sub>, <u> | Superscript, subscript, onderstreping, dubbele onderstreping, doorhaling en bovenstreping |
<font>, <span> | Verouderde attributen voor font, kleur, achtergrond, outline, text rendering mode en afgeronde achtergrond |
<a href="..."> | HTTP-, HTTPS- en bestandshyperlinks |
CSS-cascade
Rules may appear in <style> elements or inline style attributes
Selectors ondersteunen tag, class, ID, tag.class en combinaties van nakomelingen met witruimte; niet-ondersteunde attribuutselectors, pseudo-selectors en sibling- of child-combinatoren worden genegeerd
Matchende declaraties gebruiken CSS-specificiteit en bronvolgorde, inline declaraties hebben voorrang, en !important wordt binnen de ondersteunde subset gerespecteerd
Ondersteunde eigenschappen zijn de hieronder genoemde text-, background-, font-, decoration-, alignment-, line-height-, margin-, padding-, border-, width-, height-, display- en vertical-alignment-eigenschappen, plus de Flexbox-, Grid- en voetnoteigenschappen in hun eigen paragrafen
Lengtes accepteren punten, pixels tegen 0,75 punten per pixel, em-eenheden, percentages en eenheidsloze puntwaarden; fontgroottes accepteren ook de standaard keywordschaal van xx-small tot en met xx-large
Flexbox
display:flex en display:inline-flex ondersteunen flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap en column-gap
Rijcontainers verdelen positieve en negatieve vrije ruimte per flexregel, omwikkelde rijen worden onafhankelijk gemeten, en kolomcontainers verdelen een expliciete of uit de inhoud afgeleide hoogte
CSS Grid
display:grid en display:inline-grid ondersteunen grid-template-columns, grid-template-rows, vaste, percentage- en fr-tracks, eenvoudige repeat() en minmax(), grid-column, grid-row, start- en end-properties, spans, gaps, automatische plaatsing per rij of kolom en uitlijning per item
Eén container accepteert ten hoogste 256 directe items en 64 rijen of kolommen; geneste inhoud gebruikt dezelfde HTML-renderer en layoutcache
Voetnoten
<footnote>, <aside style="float:footnote"> en <aside role="doc-footnote"> maken genummerde notities
Eindige textboxes reserveren de notitieruimte onderaan voordat latere bodyregels worden uitgelegd; een referentie en notitie die niet samen passen lopen door naar het volgende frame, en de vervolgingsstatus bewaart de nummering
Tabellen
<table>, <tr>, <td> en <th> renderen uitgemeten rijen met achtergronden, padding, randen, tekststijlen en colspan tot 64 kolommen
Kolommen delen de expliciete tabelbreedte of beschikbare breedte gelijk, header-cellen krijgen standaard vette tekst op een lichte background, en een rij loopt als één atomaire eenheid door in de volgende HTML-textbox
Geneste tabellen, rowspan, het samenvallen van randen en automatische kolombreedtebepaling op basis van de inhoud maken geen deel uit van deze subset
Afbeeldingen
<img src="name"> tekent een afbeelding die eerder met SetHTMLImage is gekoppeld
De renderer ondersteunt breedte, hoogte, marge, opvulling, rand, achtergrond en links-, midden- of rechtsuitlijning; als één dimensie ontbreekt, blijft de natuurlijke beeldverhouding behouden en voor weggelaten dimensies wordt 0.75 punten per bronpixel gebruikt
Afbeeldingsbronnen triggeren nooit netwerk- of bestandstoegang, meting registreert geen resources en herhaald gebruik hergebruikt de gebonden image XObject
Grenzen en herstel
Eén HTML-invoer accepteert maximaal 2048 stylesheet-regels, 256 bytes per selector, 4096 bytes per declaratieblok, 4096 tabelrijen en 4096 tabelcellen
Onbekende properties, selectors, tags en attributen worden genegeerd terwijl de omringende tekst behouden blijft; character references worden gedecodeerd en misvormde nesting wordt conservatief gesloten
Voorbeeld
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;