TStream zur PDFium-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 | Beschreibung |
|---|---|
Create | Umschließt einen seekbaren TStream, liefert optional eine logische Dateigröße, die von der aktuellen Speicherbelegung abweicht, und überträgt optional den Stream-Besitz an den Adapter |
Destroy | Gibt den Adapter-Zustand frei und gibt Stream frei, wenn OwnsStream True ist |
Stream | Dem Konstruktor übergebener zugrunde liegender Stream |
OwnsStream | True, wenn der Adapter den Stream in Destroy freigeben soll |
FileSize | Logische, über FPDF_FILEACCESS offengelegte Größe, einschließlich beim progressiven Laden noch nicht vorhandener Bytes |
FileAccess | Für FPDF_LoadCustomDocument geeigneter PDFium-Callback-Record |
TPdfStreamAdapter lässt PDFium Byte-Bereiche bei Bedarf aus einem Stream anfordern, statt das gesamte PDF vor dem Laden vollständig in den Speicher zu kopieren
Der Stream muss Seeking unterstützen und muss so lange leben, wie das geladene FPDF_DOCUMENT aus dem Adapter lesen kann
TPdf.LoadCustomDocument verwendet für die High-Level-Komponenten-API denselben Adapter-Pfad
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);