TStream till PDFiums callback-struktur FPDF_FILEACCESS
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 | Omsluter en seekable TStream, tillhandahåller valfritt en logisk filstorlek som avviker från nuvarande lagring och överför valfritt strömägandet till adaptern |
Destroy | Släpper adapterns tillstånd och frigör Stream när OwnsStream är True |
Stream | Underliggande ström som skickades till konstruktorn |
OwnsStream | True när adaptern ska frigöra strömmen i Destroy |
FileSize | Logisk storlek exponerad via FPDF_FILEACCESS, inklusive bytes som ännu inte finns under progressiv laddning |
FileAccess | PDFium-callbackpost som passar FPDF_LoadCustomDocument |
TPdfStreamAdapter låter PDFium begära byte-intervall från en ström på begäran i stället för att kopiera hela PDF-filen till minnet innan laddningen
Strömmen måste stödja seeking och måste förbliva levande så länge som det laddade FPDF_DOCUMENT kan läsa från adaptern
TPdf.LoadCustomDocument använder samma adapterväg för komponent-API:et på hög nivå
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);