TStream de Pascal posicionable hacia la estructura de devolución de llamada FPDF_FILEACCESS de 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;
| Miembro | Descripción |
|---|---|
Create | Encapsula un TStream posicionable, suministra opcionalmente un tamaño lógico de archivo distinto del almacenamiento actual y transfiere opcionalmente la propiedad del flujo al adaptador |
Destroy | Libera el estado del adaptador y libera Stream cuando OwnsStream es True |
Stream | Flujo subyacente pasado al constructor |
OwnsStream | True cuando el adaptador debe liberar el flujo en Destroy |
FileSize | Tamaño lógico expuesto a través de FPDF_FILEACCESS, incluidos los bytes aún no presentes durante la carga progresiva |
FileAccess | Registro de devolución de llamada de PDFium apto para FPDF_LoadCustomDocument |
TPdfStreamAdapter permite que PDFium solicite rangos de bytes de un flujo a demanda en lugar de copiar todo el PDF en memoria antes de cargarlo
El flujo debe admitir posicionamiento y debe permanecer activo mientras el FPDF_DOCUMENT cargado pueda leer del adaptador
TPdf.LoadCustomDocument usa la misma vía de adaptador para la API de componentes de alto nivel
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);