PDFium Component Docs

LoadCustomDocument Yöntem

Bu API girdisi tanımlayıcıları, imzaları, kod bloklarını ve PDF terimlerini özgün biçiminde korur.
Bileşen: TPdf  ·  Birim: PDFium
PDFium'un isteğe bağlı blok okuyucusunu kullanarak, seek destekleyen herhangi bir TStream içinden bir PDF yükler; böylece çok GB'lık belgeler ve uzak / veritabanı destekli kaynaklar için baştan belleğe kopyalama gerekmez

Söz dizimi

procedure LoadCustomDocument(AStream: TStream; AOwnsStream: Boolean = False);

Açıklama

LoadCustomDocument, tamponlu LoadDocument overload'larının akış karşılığıdır. v1.8.0 ile eklenen TPdfStreamAdapter yardımcı sınıfı üzerinden PDFium'un FPDF_LoadCustomDocument giriş noktasını kullanır. PDFium blokları yalnızca gerektiğinde AStream içinden çeker, bu yüzden akış belleğe kopyalanmaz: 4 GB bir PDF üzerindeki TFileStream, HTTP destekli bir TStream ya da veritabanı BLOB stream'i tüm yükü önce RAM'e almadan kullanılabilir

AStream seeking desteklemelidir. Ömrü belge kapanana kadar sürmelidir (UnloadDocument çağırın ya da Active değerini tekrar False yapın). Stream ownership'ini bu TPdf üzerine devretmek için AOwnsStream = True verin — adapter o zaman UnloadDocument çalıştığında AStream serbest bırakır. False verin, belge kapandıktan sonra stream'i canlı tutmak istiyorsanız

LoadCustomDocument bilinçli olarak ayrı bir yöntemdir (başka bir LoadDocument overload'u değildir) böylece TMemoryStream alt sınıfı geçiren çağıranlar yanlışlıkla tamponlu LoadDocument(TMemoryStream, Boolean) overload'una bağlanamaz; Pascal argüman şekli aynı olsa da semantik çok farklıdır (buffered vs. on-demand)

Notlar

Örnek

// Stream ownership Pdf1'e devredilmiş akışlı yükleme
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
  Pdf1.LoadCustomDocument(Stream, True); // Pdf1, Stream'i UnloadDocument sırasında serbest bırakır
  Pdf1.Active := True;
  ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
end;

// Dışarıdan sahiplenilen stream — çağıran bunu UnloadDocument sonrasında serbest bırakır
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create('C:\Live.pdf', fmOpenRead or fmShareDenyNone);
  try
    Pdf1.LoadCustomDocument(Stream, False);
    Pdf1.Active := True;
    DoWork;
    Pdf1.Active := False;
  finally
    Stream.Free;
  end;
end;

Ayrıca bkz.

LoadDocument, Active, Password, FileName