PDFium Delphi Component Docs

Snapshot page object

Component: TPdf  ·  Unit: PDFium
Chụp thông tin page object thuộc sở hữu của caller đúng một lần cho các bên phân tích, preflight và xuất dữ liệu, mà không giữ lại bất kỳ native handle nào

Types

TPdfPageObjectSnapshotOptions = record ... end;

TPdfPageObjectSnapshotStatus = record ... end;

TPdfContentMarkSnapshot = record ... end;

TPdfPageObjectSnapshot = record ... end;

TPdfPageObjectsSnapshot = record ... end;

TPdfPageObjectSnapshot sở hữu mọi chuỗi và mảng động và không chứa bất kỳ handle FPDF_PAGEOBJECT, FPDF_PAGEOBJECTMARK, trang, font, bitmap hay text page nào

Các thông tin chung gồm kiểu, bounds thường và RotatedBounds, matrix, trạng thái kích hoạt, độ trong suốt, màu tô và nét, alpha, độ rộng nét, kiểu nối dòng và HasLineJoin, kiểu đầu dòng và HasLineCap, dash pattern cùng DashPhase, và marked-content ID

Thông tin riêng theo kiểu gồm số path và clip qua PathSegmentCount, ClipPathCountClipPathSegmentCount với các cổng HasPathInfoHasClipPath, hình học path tùy chọn cùng mảng đoạn ClipPath, siêu dữ liệu ảnh và filter dạng nhẹ qua HasImageInfo, từ điển mark tùy chọn, văn bản qua HasText, tên và cờ font qua HasFontInfo, weight, FontSize với HasFontSize, và RenderMode với HasRenderMode

Mỗi thông tin gốc tùy chọn đều có một cờ Has... tương ứng để một giá trị không có sẵn vẫn phân biệt được với dữ liệu 0 hoặc rỗng

Bounded read

function ReadPageObjectsSnapshot(PageNumber: Integer; const Options: TPdfPageObjectSnapshotOptions; out Status: TPdfPageObjectSnapshotStatus): TPdfPageObjectsSnapshot;

PageNumber tính từ 1 và việc đọc một trang khác giữ nguyên TPdf.PageNumber hiện hành

TPdfPageObjectSnapshotOptions.Default chụp các thông tin chung, số path và clip, siêu dữ liệu ảnh và siêu dữ liệu font, trong khi để tắt các phần dữ liệu IncludePathSegments, IncludeClipPaths, IncludeContentMarksIncludeText

TPdfPageObjectSnapshotOptions.Full bật path segment, clip path, content mark và văn bản của object dưới cùng các ngân sách tường minh

Ngân sách phủ số object qua MaxObjects, MaxPathSegments, MaxClipPathSegments, MaxMarkParams, MaxTextCharacters, MaxStringBytes và thời gian trôi qua qua DeadlineMilliseconds; IncludeImageMetadata điều khiển các thông tin ảnh dạng nhẹ

Status báo cáo NativeObjectCount, ObjectsVisited, PathSegmentsVisited, ClipPathSegmentsVisited, MarksVisited, MarkParamsVisited, TextCharactersStringBytes, đồng thời đặt ObjectLimitReached, PathSegmentLimitReached, ClipPathSegmentLimitReached, MarkParamLimitReached, TextCharacterLimitReached, StringLimitReached hoặc DeadlineReached khi một ngân sách làm cụt kết quả, còn MetadataFailureCount báo cáo các thông tin gốc không lấy được mà không dừng phần duyệt còn lại

Revision-aware cache

property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot;

property PageObjectSnapshotCacheCapacity: Integer; // default 8

property PageObjectSnapshotCacheCount: Integer;

property PageObjectSnapshotCacheHitCount: Int64;

property PageObjectSnapshotCacheMissCount: Int64;

Property đánh chỉ mục áp các tùy chọn mặc định và chỉ giữ lại snapshot hoàn chỉnh trong một cache least-recently-used có giới hạn

Mọi giá trị trả về là bản sao sâu thuộc sở hữu của caller, nên việc đổi dash array lồng nhau, tham số mark, đoạn path, clip path, filter hoặc chuỗi không thể làm hỏng dữ liệu cache hay tài liệu

Chỉnh sửa trang làm mất hiệu lực entry tương ứng, còn việc thay tài liệu và thay đổi page tree xóa sạch toàn bộ cache

Dung lượng 0 tắt việc giữ lại nhưng không tắt các lượt đọc có giới hạn trực tiếp

PageComplexity tái sử dụng cache này cho kiểu object, số path, số pixel ảnh và độ trong suốt

Example

var
  Snapshot: TPdfPageObjectsSnapshot;
  Obj: TPdfPageObjectSnapshot;
begin
  Pdf.PageObjectSnapshotCacheCapacity := 16;
  Snapshot := Pdf.PageObjectsSnapshot[1];
  if not Snapshot.Status.Completed then
    raise Exception.Create('Page object snapshot is incomplete');

  for Obj in Snapshot.Objects do
    if Obj.ObjectType = otImage then
      IndexImage(Obj.Bounds, Obj.ImageInfo);
end;

See Also

PageObjectInfo, PathInfo, PageObjectClipPath, Snapshot trang văn bản