Appendix A: Supported HTML tags

HTML визуализаторът приема ограничено подмножество за форматиран текст, структурирани блокове, таблици и изрично съпоставени изображения

Параметри

<p>, <br>Абзаци и твърди нови редове, включително наследени атрибути за подравняване и разредка на абзаци
<h1> through <h6>Получерни заглавия на блокове с намаляващи размери по подразбиране
<div>, <section>, <article>, <header>, <footer>, <main>Блокови контейнери
<blockquote>Съдържание на блок с отстъп
<ul>, <ol>, <li>Вложени неподредени и подредени списъци
<b>, <strong>, <i>, <em>Удебелен и курсивен текст
<sup>, <sub>, <u>Горен индекс, долен индекс, подчертаване, двойно подчертаване, зачертаване и надчертаване
<font>, <span>Наследени атрибути за шрифт, цвят, фон, контур, режим на рендиране на текста и заоблен фон
<a href="...">Хипервръзки HTTP, HTTPS и файлови хипервръзки

CSS каскада

Правилата могат да се появяват в елементи <style> или във вградени атрибути style

Селекторите поддържат комбинации от етикет, клас, ID, tag.class и потомци, разделени с интервали; неподдържаните селектори за атрибути, псевдоселектори и комбинатори за съседни или дъщерни елементи се игнорират

Съвпадащите декларации използват CSS специфичност и ред на източника, вградените декларации са с приоритет, а !important се зачита в поддържаното подмножество

Поддържаните свойства включват изброените по-долу свойства за текст, фон, шрифт, украса, подравняване, line-height, поле, вътрешно поле, граница, ширина, височина, display и vertical-alignment, както и свойствата Flexbox, Grid и бележки под линия в съответните им раздели

Дължините приемат точки, пиксели при 0,75 точки на пиксел, em единици, проценти и стойности в точки без единица; размерите на шрифта приемат и стандартната скала от ключови думи от xx-small до xx-large

Flexbox

display:flex и display:inline-flex поддържат flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap и column-gap

Контейнерите за редове разпределят положителното и отрицателното свободно пространство по всеки flex ред, пренесените редове се измерват независимо, а контейнерите за колони разпределят изрично зададена или получена от съдържанието височина

CSS Grid

display:grid и display:inline-grid поддържат grid-template-columns, grid-template-rows, фиксирани и процентни писти и писти fr, прости repeat() и minmax(), grid-column, grid-row, свойства за начало и край, обхвати, разстояния, автоматично разполагане по ред или колона и подравняване за всеки елемент

Един контейнер приема най-много 256 преки елемента и 64 реда или колони; вложеното съдържание използва същия HTML визуализатор и кеш за оформление

Бележки под линия

<footnote>, <aside style="float:footnote"> и <aside role="doc-footnote"> създават номерирани бележки

Крайните текстови полета запазват областта за бележка отдолу преди оформянето на следващите основни редове; препратка и бележка, които не се побират заедно, продължават в следващата рамка, а състоянието на продължение запазва номерацията

Таблици

<table>, <tr>, <td> и <th> рендират измерени редове с фонове, отстъпи, рамки, стилове на текста и colspan до 64 колони

Колоните разделят поравно изрично зададената или наличната ширина на таблицата, клетките на заглавката по подразбиране са с удебелен текст и светъл фон, а редът продължава като една атомарна единица в следващото HTML текстово поле

Вложени таблици, rowspan, сливане на рамки и автоматично оразмеряване на колони според съдържанието не са част от това подмножество

Изображения

<img src="name"> изчертава изображение, предварително свързано с SetHTMLImage

Рендериращият механизъм поддържа ширина, височина, поле, вътрешно отстояние, рамка, фон и подравняване вляво, центрирано или вдясно; един липсващ размер запазва естественото съотношение на страните, а пропуснатите размери използват 0.75 точки на пиксел от източника

Източниците на изображения никога не задействат достъп до мрежа или файл, измерването не регистрира ресурси, а повторната употреба използва повторно свързания XObject на изображението

Граници и възстановяване

Един HTML вход приема най-много 2048 правила за стилови таблици, 256 байта за селектор, 4096 байта за блок с декларации, 4096 реда на таблица и 4096 клетки на таблица

Непознатите свойства, селектори, етикети и атрибути се игнорират, докато околният текст се запазва; символните препратки се декодират, а неправилното влагане се затваря предпазливо

Пример

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;