TStream w Pascalu do struktury wywołań zwrotnych FPDF_FILEACCESS z 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 | Otoczkuje przeszukiwalny TStream, opcjonalnie podaje logiczny rozmiar pliku różniący się od aktualnego magazynu i opcjonalnie przenosi własność strumienia na adapter |
Destroy | Zwalnia stan adaptera i zwalnia Stream, gdy OwnsStream ma wartość True |
Stream | Strumień bazowy przekazany do konstruktora |
OwnsStream | True, gdy adapter ma zwolnić strumień w Destroy |
FileSize | Rozmiar logiczny udostępniany przez FPDF_FILEACCESS, łącznie z bajtami jeszcze nieobecnymi podczas ładowania progresywnego |
FileAccess | Rekord wywołań zwrotnych PDFium nadający się do FPDF_LoadCustomDocument |
TPdfStreamAdapter pozwala PDFium żądać zakresów bajtów ze strumienia na żądanie, zamiast kopiować cały PDF do pamięci przed załadowaniem
Strumień musi obsługiwać przeszukiwanie i musi pozostać żywy tak długo, jak długo załadowany FPDF_DOCUMENT może czytać z adaptera
TPdf.LoadCustomDocument używa tej samej ścieżki adaptera dla wysokopoziomowego API komponentu
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);