DrawHTMLStory

HTML 文本、页面布局、分页

描述

将一个带样式的 HTML 内容从左到右流经所选页面上的等宽列,然后流经新生成的页面

语法

Delphi

Function TPDFlib.DrawHTMLStory(Left, Top, Width, Height: Double; Columns: Integer; Gutter: Double; MaxPages: Integer; Const HTMLText: WideString): WideString;

DLL

const wchar_t* DLDrawHTMLStory(int InstanceID, double Left, double Top, double Width, double Height, int Columns, double Gutter, int MaxPages, const wchar_t* HTMLText);

ActiveX

Function PDFlib::DrawHTMLStory(Left As Double, Top As Double, Width As Double, Height As Double, Columns As Long, Gutter As Double, MaxPages As Long, HTMLText As String) As String

参数

Left, Top当前坐标系中完整列区域的左上角原点
Width, Height每个页面上完整区域的宽度和高度均为正值
Columns列数,范围为 1 至 64
Gutter相邻列之间的非负间距;合计列间距必须小于 Width
MaxPages本次调用使用的最大页数,为 1 至 10000,包含所选页面
HTMLText初始 HTML,或早先 story 或文本框调用返回的续接字符串

返回值

完整故事内容放置完毕时返回空字符串;达到 MaxPages 时返回包含所有未放置内容及其活动 HTML/CSS 状态的续接字符串

无效输入会原样返回 HTMLText 并将 LastErrorCode 设为 121;页面创建失败或连续两个帧没有布局进展时,会返回剩余内容及错误 524

备注

创建新页面前,按从左到右的阅读顺序填充各列

生成页面会复制所选起始页的有效宽度和高度,而当前测量单位、原点、HTML 字体映射、图像绑定、内联样式、样式表级联、嵌套样式栈、Flexbox 和 Grid 容器、表格、链接、结构化块及脚注编号会在同一渲染器中继续生效

在相关正文文本之后使用 <footnote> 或 <aside style="float:footnote">;接受的注释会获得上标标记,在当前框架底部预留分隔区域,并在后续换行前减少正文高度

如果注释及其引用无法共同放入,它们都会保留在续接字符串中以用于下一栏或下一页

该方法为每个帧使用缓存的测量与重放计划,不会将页面内容串接到单个无界布局缓冲区

当有限页面限制返回剩余内容时,创建或选择所需的续接页面,并将返回字符串传给另一次调用

另请参阅

DrawHTMLTextBox、DrawTextFlowColumns、附录 A:支持的 HTML 标签