LoadFromRangeSource

Quản lý tài liệu, Hiệu năng

Mô tả

Nạp và chọn một PDF thông qua một callback truy cập ngẫu nhiên đồng bộ, cho phép các HTTP client, cơ sở dữ liệu, kho đối tượng và nhà cung cấp lưu trữ tùy chỉnh chỉ cung cấp các vùng byte mà bộ phân tích chạm tới

Cú pháp

Delphi

Function TPDFlib.LoadFromRangeSource(SourceSize: Int64;
  ReadCallback: TPDFlibRangeReadEvent; Const Password: WideString;
  ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0;
  CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS;
  AvailabilityCallback: TPDFlibRangeAvailabilityEvent= Nil): Integer;

Tham số

SourceSizeTổng kích thước nguồn chính thức tính bằng byte
ReadCallbackCallback sao chép các byte cho một offset nguồn tuyệt đối
PasswordMật khẩu dùng để mở PDF, hoặc chuỗi rỗng cho tài liệu không mã hóa
ChunkSizeĐộ chi tiết lấy vùng dữ liệu căn chỉnh; số 0 chọn mặc định 64 KiB và các giá trị dưới 4096 cũng dùng mặc định
CacheLimitBytesSố byte tối đa được giữ lại xuyên qua các cửa sổ ít-dùng-gần-nhất; số 0 chọn mặc định 4 MiB và các giá trị dưới một chunk được nâng lên một chunk
CoalesceWindowMSCửa sổ gộp cho chunk đầu tiên chưa có trong bộ đệm của mỗi lần đọc tuyệt đối; 2 mili giây là mặc định và số 0 tắt độ trễ ban đầu
AvailabilityCallbackMột phép kiểm tra tùy chọn, không tải về, cho các vùng byte hiện có sẵn trong lưu trữ tiến triển

Giá trị trả về

0Các đối số nguồn không hợp lệ hoặc không thể nạp PDF; hãy kiểm tra LastErrorCode
1Tài liệu đã được nạp và chọn

Ghi chú

Callback đọc nhận các offset tuyệt đối tính từ 0 và phải ghi không quá Count byte vào Buffer, trả về số byte đã ghiĐích callback và bộ lưu trữ nền của nó phải giữ hợp lệ cho đến khi tài liệu đã nạp được đóng vì việc kết xuất trang, trích xuất và lưu có thể yêu cầu thêm các vùng dữ liệu sau nàyCác lệnh gọi là đồng bộ và có thể đến theo thứ tự không tuần tự; một kết quả ngắn được chấp nhận ở cuối vật lý của nguồn, còn một kết quả 0 ngoài dự kiến khiến việc nạp hay thao tác hoãn hiện tại thất bạiKhi

Đích callback và bộ lưu sau của nó phải còn hợp lệ cho đến khi tài liệu đã tải bị đóng vì render trang, trích xuất và lưu có thể yêu cầu thêm vùng sau này

Các lời gọi là đồng bộ và có thể đến không theo thứ tự; kết quả ngắn được chấp nhận ở cuối vật lý của nguồn, còn kết quả không bất thường làm tải hoặc operation hoãn hiện tại thất bại

AvailabilityCallback được gán, hãy trả về một giá trị khác 0 chỉ khi toàn bộ vùng dữ liệu được yêu cầu có thể được đọc ngay lập tức mà không cần truyền tải hay I/O chặnMột vùng dữ liệu đã cache là khả dụng bất kể kết quả callback; một callback

Nil giữ hành vi đồng bộ bằng cách coi mọi vùng nguồn hợp lệ là khả dụngCác chunk căn chỉnh tránh phải tải truyền tải trùng lặp cho các lần đọc chồng lấn, còn ngân sách byte giới hạn payload được giữ lại độc lập với kích thước tài liệuCác lần đọc đối tượng và đoạn hoãn dùng các offset tuyệt đối, nên các công việc đồng thời dùng chung yêu cầu cùng chunk và gộp các chunk liền kề trong hàng đợi mà không thay đổi con trỏ luồng định vịCác callback nguồn được tuần tự hóa và không được đọc đệ quy từ cùng stream vùng dữ liệu đóDùng

Các chunk sắp thẳng giúp tránh fetch trùng qua transport cho các lần đọc chồng lấn, còn hạn mức byte chặn lượng payload giữ lại độc lập với kích thước tài liệu

Đọc object và segment hoãn dùng offset tuyệt đối, công việc đồng thời nhờ vậy chia sẻ yêu cầu cùng chunk và gộp chunk kề nhau trong hàng đợi mà không đổi cursor dòng của stream

Các callback nguồn được xếp tuần tự và không được đọc đệ quy từ cùng range stream

GetRangeSourceDataAvailability

GetRangeSourceCacheInfo để kiểm tra các phụ thuộc trang, form hay đối tượng gián tiếp mà không đọc các vùng dữ liệu được báo là thiếuDùng SetRangeSourceCacheLimit, ClearRangeSourceCache và

Thư viện sở hữu range stream có seek nội bộ của mình, nhưng không sở hữu đích callback hay bộ lưu sau của nó