PDFium Delphi Component Docs

Phương thức GetAnnotationDictionaryValue

Component: TPdf  ·  Unit: PDFium
Đọc trực tiếp một key từ dictionary của một chú thích trên trang hiện tại và báo loại giá trị cùng scalar đã giải mã

Syntax

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

AnnotIndexInteger. Chỉ số của chú thích trên trang hiện tại, đánh số từ 0, trong khoảng 0 .. AnnotationCount - 1. Chỉ số ngoài khoảng làm phát sinh EPdfError
KeyWString. Tên của mục dictionary cần đọc, được mã hóa UTF-8 trước lời gọi native
ResultTPdfDictionaryValue. Kind mang kiểu giá trị native; các giá trị string, name và number được giải mã vào StringValue / NumberValue với HasScalarValue = True

Description

Mỗi chú thích đều có một dictionary PDF đứng sau, và mô hình record của component chỉ ánh xạ các mục thông dụng. Lời gọi này chạm thẳng vào dictionary thô để đọc một key duy nhất, nhờ vậy các mục do ứng dụng định nghĩa (một trạng thái review, một grouping id, một phần mở rộng của nhà cung cấp) hiển thị được mà không phải đi qua toàn bộ object graph

Loại giá trị được truy vấn native và giải mã thành một TPdfDictionaryValueKind: pdvkUnknown, pdvkBoolean, pdvkNumber, pdvkString, pdvkName, pdvkArray, pdvkDictionary, pdvkStream, pdvkNull hoặc pdvkReference. Chỉ các loại scalar được lấy: string và name được giải mã vào StringValue, number vào NumberValue (đọc ở độ chính xác single bởi API native), và HasScalarValue đánh dấu lần lấy thành công. Các giá trị không có payload scalar — boolean, array, dictionary lồng nhau, stream — chỉ được báo qua Kind

Với các key mà mô hình record đã phơi bày sẵn, hãy ưu tiên Annotation: nó chuẩn hóa và kiểm chứng các trường thông dụng. Chỉ nên dùng lời gọi này khi một key nằm ngoài mô hình

Remarks

Example

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;

See Also

Annotation, AnnotationCount, GetAttachmentDictionaryValue