AddRoleMapA

标记 PDF、可访问性

描述

末尾的 A 表示 ANSI(char)DLL 入口点;ActiveX/COM 接口仅公开 Unicode 形式。其行为与 AddRoleMap 相同,字符串参数将使用当前 SetAnsiMode 代码页进行解释

在文档的 RoleMap 字典中注册从自定义结构元素类型名称到标准 PDF 结构类型的映射

当带标签的 PDF 内容使用非标准标签名称(例如公司专用或应用程序专用元素类型)时,PDF 规范要求在结构树根的 /RoleMap 条目中将这些名称映射到标准 PDF 结构类型。ISO 14289-1 §7.1 要求所有包含非标准结构元素类型的 PDF/UA-1 文档均具有此映射

对每个自定义类型,在以该类型调用 AddRoleMap 后且调用 BeginTag 或 BeginTagEx 前注册一次映射,可注册多个映射,同一自定义类型注册多次时最后一个映射生效

保存文档时,若至少已注册一个映射,便会将 RoleMap 写入结构树根

语法

Delphi

Function DLAddRoleMapA(InstanceID: Integer; CustomType, StandardType: PAnsiChar): Integer;

DLL

int DLAddRoleMapA(int InstanceID, const char * CustomType, const char * StandardType);

参数

CustomType在 BeginTag 或 BeginTagEx 调用中使用的自定义(非标准)结构元素类型名称,例如 Headline、Caption、Callout
StandardType自定义类型映射到的标准 PDF 结构类型:P、H1–H6、Figure、Table、Span、Link、Note 等(请参阅 ISO 32000-1 §14.8.4)。该类型必须是已识别的标准类型,映射才能满足 PDF/UA 合规性检查器

返回值

0失败(未打开文档)
1已成功注册映射

示例

// Document with custom element types mapped to standard PDF structure types
PDF.SetPDFUAMode('en-US');
PDF.AddRoleMap('Headline', 'H1');
PDF.AddRoleMap('Subheadline', 'H2');
PDF.AddRoleMap('Caption', 'P');

PDF.BeginTag('Headline', '', '');
PDF.PrintText(50, 750, 'Annual Report 2026');
PDF.EndTag;

PDF.BeginTag('Subheadline', '', '');
PDF.PrintText(50, 720, 'Financial Highlights');
PDF.EndTag;