附录 A:支持的 HTML 标签

PDFlibPas 中有多项函数接受一个小型 HTML 子集,用于内联富文本格式。例如 DrawHTMLTextDrawHTMLTextBox,以及多个把文本参数标记为 HTML 的富文本注释和表格单元格设置函数。本附录列出这些解析器可识别的所有标签和属性。列表之外的标签或属性会被静默剥离,周围文本会保留

块级结构

<br>硬换行
<p align="left">左对齐段落,默认值
<p align="center">居中段落
<p align="right">右对齐段落
<p align="justified">两端对齐段落
<ul>, <ol>, <li>无序列表和有序列表。<ul><ol> 可以嵌套

内联字符格式

<b>, <strong>粗体
<i>, <em>斜体
<sup>, <sub>上标和下标
<u>单下划线
<u style="double">双下划线
<u style="strikeout">删除线,线条穿过文本
<u style="over">上划线,线条绘制在文本上方

字体和颜色

<font size="" color="" background="" roundback="yes/no" mode="" outlinecolor="" outlinewidth="Npt">设置包围文本的外观。size 接受标准 HTML 大小(17)或点值(如 11.5pt)。outlinewidth 必须是点值(如 1.5pt)。mode 选择文本渲染模式(填充、描边、填充加描边、不可见等)。background 在文本后绘制彩色矩形;roundback="yes" 会为该矩形绘制圆角
<span background="" roundback="yes/no">在包围文本周围绘制背景矩形,但不改变字体

超链接

<a href="http://...">Web 超链接(HTTP)
<a href="https://...">Web 超链接(HTTPS)
<a href="file://...">指向本地文件的链接

颜色表示法

RGB 颜色使用标准 HTML 十六进制写法,并以 # 开头,例如 #3A498C。CMYK 颜色使用不带前导 # 的八位十六进制数字,例如 5C238F02。任何需要颜色值的位置(colorbackgroundoutlinecolor)都接受这两种写法

说明

解析器是宽容的:未知标签和属性会被静默丢弃,但其内部文本会保留。错误嵌套的标签(例如 <b><i>…</b></i>)会按打开顺序闭合,以保持输出有效。字符引用(如 &amp;&lt;&gt;)以及数字形式(&#xNN;)会被解码

示例

// Drawing a paragraph with mixed formatting in a table cell
var
  CellHTML: WideString;
begin
  CellHTML :=
    '<p align="center">'           +
    '<font size="14pt" color="#003366">'+
    '<b>Annual Report 2026</b>'      +
    '</font><br>'                   +
    '<font size="9pt" color="#777777">'+
    '<i>Confidential — <a href="https://example.com/legal">legal terms</a></i>'+
    '</font>'                       +
    '</p>';
  PDF.DrawHTMLTextBox(50, 750, 400, 60, CellHTML);
end;