LoadFromRangeSource
Manajemen dokumen, Performa
Deskripsi
Memuat dan memilih PDF melalui callback akses acak sinkron, memungkinkan klien HTTP, basis data, object store, dan penyedia penyimpanan kustom menyediakan hanya rentang byte yang disentuh parser
Sintaks
Delphi
Function TPDFlib.LoadFromRangeSource(SourceSize: Int64;
ReadCallback: TPDFlibRangeReadEvent; Const Password: WideString;
ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0;
CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS;
AvailabilityCallback: TPDFlibRangeAvailabilityEvent= Nil): Integer;Parameter
| SourceSize | Ukuran sumber total yang otoritatif dalam byte |
|---|---|
| ReadCallback | Callback yang menyalin byte untuk offset sumber absolut |
| Password | Kata sandi untuk membuka PDF, atau string kosong untuk dokumen tanpa enkripsi |
| ChunkSize | Granularitas pengambilan rentang yang sejajar; nol memilih bawaan 64 KiB dan nilai di bawah 4096 juga memakai bawaan |
| CacheLimitBytes | Byte maksimum yang disimpan melintasi jendela paling lama tak dipakai; nol memilih bawaan 4 MiB dan nilai di bawah satu chunk dinaikkan menjadi satu chunk |
| CoalesceWindowMS | Jendela pengumpulan untuk chunk pertama yang belum di-cache dari setiap pembacaan absolut; 2 milidetik sebagai bawaan dan nol menonaktifkan penundaan awal |
| AvailabilityCallback | Uji opsional tanpa pengambilan untuk rentang byte yang sudah ada di penyimpanan progresif |
Nilai yang dikembalikan
| 0 | Argumen sumber tidak valid atau PDF tidak dapat dimuat; periksa LastErrorCode |
|---|---|
| 1 | Dokumen telah dimuat dan dipilih |
Catatan
Callback baca menerima offset absolut berbasis nol dan tidak boleh menulis lebih dari Count byte ke Buffer, mengembalikan jumlah yang ditulisTarget callback dan penyimpanan pendukungnya harus tetap valid sampai dokumen yang dimuat ditutup karena perenderan halaman, ekstraksi, dan penyimpanan dapat meminta rentang tambahan nantiPanggilan bersifat sinkron dan dapat datang dalam urutan tidak berurutan; hasil pendek diterima di ujung fisik sumber, sedangkan hasil nol yang tak terduga menyebabkan pemuatan atau operasi tertunda saat ini gagalKetika
AvailabilityCallback ditugaskan, kembalikan nilai bukan nol hanya ketika rentang lengkap yang diminta dapat dibaca seketika tanpa transport atau I/O yang memblokirRentang yang di-cache tersedia apa pun hasil callbacknya; callback
Nil mempertahankan perilaku sinkron dengan memperlakukan setiap rentang sumber valid sebagai tersediaChunk sejajar menghindari pengambilan transport duplikat untuk pembacaan yang tumpang tindih, sedangkan anggaran byte membatasi payload yang disimpan secara independen dari ukuran dokumenPembacaan objek dan segmen tertunda memakai offset absolut, sehingga pekerjaan konkuren berbagi permintaan chunk yang sama dan menggabungkan chunk antrean yang berdekatan tanpa mengubah kursor stream posisionalCallback sumber diserialisasi dan tidak boleh membaca secara rekursif dari stream rentang yang samaGunakan
GetRangeSourceDataAvailability
GetRangeSourceCacheInfo untuk menguji dependensi halaman, formulir, atau objek tidak langsung tanpa membaca rentang yang dilaporkan hilangGunakan SetRangeSourceCacheLimit, ClearRangeSourceCache dan