PDFium Delphi Component 文件

ResolvePdfUaEffectiveLanguage 函数

单元: PDFium
通过 ISO 14289 声明级联解析某个内容位置的有效自然语言

语法

function ResolvePdfUaEffectiveLanguage(const CatalogLanguage: WString;
  const Elements: TPdfStructureElements; ElementIndex: Integer;
  const MarkedContentLanguage: WString; HasMarkedContentLanguage: Boolean;
  out Resolution: TPdfUaLanguageResolution): Boolean;

参数

CatalogLanguageWString
ElementsTPdfStructureElements
ElementIndexInteger
MarkedContentLanguageWString
HasMarkedContentLanguageBoolean
ResolutionTPdfUaLanguageResolution

返回值

Boolean

说明

ResolvePdfUaEffectiveLanguage 对一个内容位置应用 ISO 14289 语言级联,并把胜出的声明填入 Resolution

当 HasMarkedContentLanguage 为 True 时,标记内容 /Lang 值胜出,Resolution.Source 为 pulsMarkedContent

否则会沿 ParentIndex 遍历 ElementIndex 处的元素及其祖先,直到某个元素带有非空的 Language;此时 Resolution.Source 为 pulsStructure,StructureElementIndex 记录声明该语言的元素

当没有任何结构元素声明语言时,非空的 CatalogLanguage 生效,Source 为 pulsCatalog

每个候选项都会用 IsPdfUaLanguageTagValid 校验,结果存储在 Resolution.DeclarationValid 中

函数返回 Resolution.IsCovered,只有当找到声明且它是格式良好的标记时才为 True

当不存在任何候选项时,Resolution 保持 Source 为 pulsNone 且 Language 为空,结果为 False

备注

示例

Covered := ResolvePdfUaEffectiveLanguage(Pdf.Language, Elements, I, '', False, Resolution);

参见

IsPdfUaLanguageTagValid, TPdf.InspectPdfUaLanguageCoverage, TPdf.Language, TPdf.StructureElements