PDFium Delphi Component Docs

Функция ResolvePdfUaEffectiveLanguage

Модуль: PDFium
Разрешает действующий естественный язык одной позиции содержимого через каскад объявлений ISO 14289

Syntax

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

Parameters

CatalogLanguageWString
ElementsTPdfStructureElements
ElementIndexInteger
MarkedContentLanguageWString
HasMarkedContentLanguageBoolean
ResolutionTPdfUaLanguageResolution

Return Value

Boolean

Description

ResolvePdfUaEffectiveLanguage применяет языковой каскад ISO 14289 к одной позиции содержимого и заполняет Resolution выигравшим объявлением

Когда HasMarkedContentLanguage равно True, побеждает значение /Lang из marked-content, а Resolution.Source становится pulsMarkedContent

Иначе выполняется обход элемента с индексом ElementIndex и его предков по ParentIndex, пока один из них не укажет непустой Language; тогда Resolution.Source равен pulsStructure, а StructureElementIndex фиксирует объявивший элемент

Если ни один элемент структуры не объявляет язык, применяется непустой CatalogLanguage с Source pulsCatalog

Каждый кандидат проверяется функцией IsPdfUaLanguageTagValid, и результат сохраняется в Resolution.DeclarationValid

Функция возвращает Resolution.IsCovered, которое равно True, только когда объявление найдено и является корректно сформированным тегом

Если кандидатов нет, Resolution сохраняет Source pulsNone с пустым Language, а результат равен False

Remarks

Example

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

See Also

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