TStream Pascal seekable alla struttura di callback FPDF_FILEACCESS di PDFium
constructor Create(AStream: TStream; AOwnsStream: Boolean = False);
constructor Create(AStream: TStream; AFileSize: UInt64; AOwnsStream: Boolean);
destructor Destroy; override;
property Stream: TStream read FStream;
property OwnsStream: Boolean read FOwnsStream;
property FileSize: UInt64 read FFileSize;
property FileAccess: FPDF_FILEACCESS read FFileAccess;
| Member | Description |
|---|---|
Create | Incapsula un TStream seekable, fornisce facoltativamente una dimensione logica del file diversa dalla memoria corrente e trasferisce facoltativamente la proprietà dello stream all'adattatore |
Destroy | Rilascia lo stato dell'adattatore e libera Stream quando OwnsStream è True |
Stream | Stream sottostante passato al costruttore |
OwnsStream | True quando l'adattatore deve liberare lo stream in Destroy |
FileSize | Dimensione logica esposta tramite FPDF_FILEACCESS, inclusi i byte non ancora presenti durante il caricamento progressivo |
FileAccess | Record di callback PDFium adatto a FPDF_LoadCustomDocument |
TPdfStreamAdapter consente a PDFium di richiedere intervalli di byte da uno stream su richiesta invece di copiare l'intero PDF in memoria prima del caricamento
Lo stream deve supportare il seek e deve restare attivo finché il FPDF_DOCUMENT caricato può leggere dall'adattatore
TPdf.LoadCustomDocument usa lo stesso percorso di adattatore per l'API del componente di alto livello
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);