PDFium Delphi Component Docs

метод GetAnnotationDictionaryValue

Компонент: TPdf  ·  Модул: PDFium
Прочита директно един ключ от речника на анотация на текущата страница и докладва вида на стойността заедно с декодирания скалар

Синтаксис

function GetAnnotationDictionaryValue(AnnotIndex: Integer; const Key: WString): TPdfDictionaryValue;

AnnotIndexInteger. Индекс на анотацията на текущата страница, броен от нула, в диапазона 0 .. AnnotationCount - 1. Индекс извън диапазона вдига EPdfError.
KeyWString. Име на речниковия запис за четене, кодиран в UTF-8 преди native извикването.
ResultTPdfDictionaryValue. Kind носи native типа на стойността; стойности от тип низ, име и число се декодират в StringValue / NumberValue с HasScalarValue = True.

Описание

Всяка анотация стои върху PDF речник, а записният модел на компонента отразява само често срещаните записи. Това извикване навлиза в суровия речник и прочита един ключ, така че дефинираните от приложението записи (статус на рецензия, идентификатор на групиране, разширение от доставчик) стават видими без обхождане на графа от обекти

Видът на стойността се запитва нативно и се декодира в TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull или pdvkReference. Извличат се само скаларните видове: низовете и имената се декодират в StringValue, числата — в NumberValue (четени с единична точност от native API), а HasScalarValue отбелязва успешно извличане. Стойностите без скаларен payload — булеви стойности, масиви, вложени речници, потоци — се докладват само чрез Kind

За ключовете, които записният модел вече излага, предпочетете Annotation: той нормализира и валидира общите полета. Обърнете се към това извикване само когато ключът е извън модела

Забележки

Пример

var
  Value: TPdfDictionaryValue;
begin
  // read a vendor-specific review status from annotation 2
  Value := Pdf1.GetAnnotationDictionaryValue(2, 'ReviewStatus');
  if (Value.Kind = pdvkName) and Value.HasScalarValue then
    Memo1.Lines.Add('Status: ' + Value.StringValue);
end;

Виж също

Annotation, AnnotationCount, GetAttachmentDictionaryValue