TStream Pascal positionnable vers la structure de rappels 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;
| Member | Description |
|---|---|
Create | Encapsule un TStream positionnable, fournit facultativement une taille de fichier logique différente du stockage courant et transfère facultativement la propriété du flux à l’adaptateur |
Destroy | Libère l’état de l’adaptateur et libère Stream lorsque OwnsStream vaut True |
Stream | Flux sous-jacent passé au constructeur |
OwnsStream | True lorsque l’adaptateur doit libérer le flux dans Destroy |
FileSize | Taille logique exposée via FPDF_FILEACCESS, y compris les octets pas encore présents durant le chargement progressif |
FileAccess | Enregistrement de rappels PDFium adapté à FPDF_LoadCustomDocument |
TPdfStreamAdapter permet à PDFium de demander des plages d’octets d’un flux à la demande au lieu de copier tout le PDF en mémoire avant le chargement
Le flux doit prendre en charge le positionnement et doit rester vivant tant que le FPDF_DOCUMENT chargé peut lire depuis l’adaptateur
TPdf.LoadCustomDocument emprunte le même chemin d’adaptateur pour l’API composant de haut niveau
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);