EndTag
标记 PDF、可访问性
描述
关闭标签栈中最近打开的结构元素,向当前页面的内容流写入 EMC(End Marked Content)运算符,并从栈中弹出该元素。保存文档或添加下一页之前,每次调用 BeginTag、BeginTagEx 或 BeginTagEx2 必须恰好对应一次 EndTag 调用
语法
Delphi
Function TPDFlib.EndTag: Integer;
ActiveX
Function PDFlib::EndTag() As Long
DLL
int DLEndTag(int InstanceID);
返回值
| 0 | 失败 — 未打开文档,或标签栈为空(调用 EndTag 的次数多于相应的 Begin* 函数) |
|---|---|
| 1 | 结构元素已成功关闭 |
备注
标签必须正确嵌套,每个 EndTag 都会关闭最内层打开的结构元素;关闭顺序严格与打开顺序相反,如同 HTML 或 XML 中普通块元素的嵌套方式
如果文档保存时仍有一个或多个结构元素处于打开状态,GetPDFUADiagnostics 会在 STRUCT-UNCLOSED 代码下报告数量。未关闭元素缺失于保存后的结构树,因此每页对应的标记内容区段没有逻辑父项——辅助技术会跳过它们
不要使用 EndTag 关闭通过 BeginArtifact 打开的 Artifact 区域;应改为调用 EndArtifact Artifact 与结构元素位于相互独立的标记内容栈中
示例
// Nested structure: a section with a heading and two paragraphs
PDF.BeginTag('Sect', '', '');
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Introduction');
PDF.EndTag; // H1
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'First paragraph of the introduction.');
PDF.EndTag; // P
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 690, 'Second paragraph follows in the same section.');
PDF.EndTag; // P
PDF.EndTag; // Sect另请参阅
BeginTag, BeginTagEx, BeginTagEx2, EndArtifact, GetPDFUADiagnostics