PDFium Delphi Component Docs

TPdfProgressiveDocument sınıfı

Unit: PDFium  ·  Base class: TPdf
Seyrek bayt kullanılabilirliği, önceliklendirilmiş aralık zamanlaması, sınırlı yeniden denemeler, iptal etme ve belge, form ile sayfa kapıları sunan yerel PDFium progressive indirme oturumu

Syntax

type TPdfProgressiveDocument = class(TPdf) ... end;

Methods

MethodDescription
CreateBelge bileşenini ve ona ait aralık isteği zamanlayıcısını oluşturur
DestroyMiras alınan belge kaynaklarını serbest bırakmadan önce progressive durumu iptal eder
BeginProgressiveLoad(AStream, AFileSize, AOwnsStream, AInitialAvailableByteCount)Mantıksal son boyutu, şu anda depolanmış baytlardan ayrı tutarak yerel kullanılabilirlik sağlayıcısını oluşturur
CheckDocumentAvailabilitypdaAvailable, pdaNotAvailable veya pdaError döndürür ve PDFium tarafından istenen birleştirilmiş bayt aralıklarını verir
OpenProgressiveDocumentDoğrusallaştırılmış bir PDF'i FPDFAvail_GetDocument üzerinden, eksiksiz alınmış doğrusallaştırılmamış bir PDF'i ise FPDF_LoadCustomDocument üzerinden açar
CheckFormAvailabilityYerel form verisi kullanılabilir olana dek form doldurma başlatmasını kapıda bekletir
LoadAvailablePageForm kullanılabilirliği son duruma ulaştıktan sonra tek bir 1 tabanlı sayfayı kapıda bekletip yükler
CancelProgressiveLoadSayfayı, formu, belgeyi, kullanılabilirlik tanıtıcısını, callback'leri ve akış bağdaştırıcısını bağımlılık sırasına göre kapatır

Properties and events

MemberTypeDescription
ProgressiveLoadingBooleanYerel kullanılabilirlik oturumu canlıyken True
LogicalFileSizeUInt64Sunucu veya kapsayıcının bildirdiği son içerik uzunluğu
AvailableByteCountUInt64Akıştan zaten okunabilen bitişik önekin tekdüze (monotonic) uzunluğu
LinearizationTPdfLinearizationYeterli başlık baytı kullanılabilir olduğunda yerel doğrusallaştırma kararı
FirstAvailablePageNumberIntegerBelge tanıtıcısı açıldıktan sonraki ilk 1 tabanlı sayfa
OnDataAvailableTPdfDataAvailableEventSeyrek ya da sıra dışı aralık depoları için önek denemesini geçersiz kılar
RangeRequestsTPdfRangeRequestSchedulerHer yerel belge, form ve sayfa indirme ipucundan doldurulan sahip olunan zamanlayıcı

Description

TPdfProgressiveDocument, yerel FPDF_AVAIL tanıtıcısına ve PDFium'un uzak ya da büyüyen bir akış yüklemesi boyunca yeniden ziyaret edebileceği callback kayıtlarına sahiptir

Sunucu içerik uzunluğu ve varsa ilk önek ile başlayın; ilgili kullanılabilirlik yöntemini çağırın, RangeRequests üzerinden işleri kuyruktan çekin, her yanıtı destekleyici rastgele erişim deposuna yazın, CompleteRequest çağırın ve son (terminal) bir kullanılabilirlik durumu dönene dek yineleyin

Bitişik bir indirmede yeni baytlar yazdıktan sonra AvailableByteCount değerini ilerletin; seyrek bir aralık önbelleğinde OnDataAvailable atayın ve istenen her ofset-boyut çiftinin okunabilir olup olmadığını yanıtlayın

Zamanlayıcı, eski DownloadHints çıktısı üzerinden dönen aynı yerel ipuçlarını kabul eder, önek veya seyrek callback üzerinden zaten bilinen aralıkları çıkarır, komşu kuyrukları devreye sokmadan sayfa-kritik baytlar için örtüşen arka plan aktarımlarını öne alır ve taşıma işini MaxRequestSize üzerinden böler

Doğrusallaştırılmış PDF'lerde belge meta verisi ve ilk sayfa, dosyanın tamamı gelmeden açılabilir; doğrusallaştırılmamış PDF'ler eksiksiz dosya gerektirir ve otomatik olarak normal yerel özel akış yükleyicisini kullanır

Example

var
  Hints: TPdfDownloadRanges;
  Request: TPdfRangeRequest;
  State: TPdfDataAvailability;
begin
  Progressive.BeginProgressiveLoad(CacheStream, ContentLength,
    False, InitialPrefixLength);
  repeat
    State := Progressive.CheckDocumentAvailability(Hints);
    while Progressive.RangeRequests.TryDequeue(Request) do
    begin
      FetchRangeIntoCache(Request.Offset, Request.Size);
      Progressive.RangeRequests.CompleteRequest(Request);
    end;
  until State <> pdaNotAvailable;
  if State = pdaAvailable then
    Progressive.OpenProgressiveDocument;
end;

Remarks

Related types

TPdfDataAvailability, TPdfDownloadRange, TPdfDownloadRanges, TPdfRangeRequest, TPdfRangeRequestPriority, TPdfRangeRequestStatistics, TPdfRangeRequestScheduler, TPdfDataAvailableEvent, TPdfLinearization, TPdfFormAvailability