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