LoadFromRangeSource
مدیریت سند، کارایی
توضیحات
یک PDF را از طریق callback دسترسی تصادفی همگام بارگذاری و انتخاب میکند و به کلاینتهای HTTP، پایگاههای داده، مخازن شیء و فراهمکنندههای ذخیرهسازی سفارشی اجازه میدهد تنها محدودههای بایتی را که تجزیهگر لمس میکند فراهم کنند
نحو
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;پارامترها
| SourceSize | اندازه کل معتبر مبدأ بر حسب بایت |
|---|---|
| ReadCallback | callbackای که بایتهای یک آفست مطلق مبدأ را کپی میکند |
| Password | گذرواژه بازکردن PDF، یا رشته خالی برای سند رمزنشده |
| ChunkSize | دانهبندی همتراز واکشی محدوده؛ صفر پیشفرض 64 KiB را برمیگزیند و مقادیر زیر 4096 نیز از پیشفرض استفاده میکنند |
| CacheLimitBytes | بیشینه بایتهای نگهداشتهشده در سراسر پنجرههای کماستفادهترین؛ صفر پیشفرض 4 MiB را برمیگزیند و مقادیر زیر یک قطعه به یک قطعه بالا برده میشوند |
| CoalesceWindowMS | پنجره گردآوری برای نخستین قطعه خارج از حافظه نهان در هر خواندن مطلق؛ 2 میلیثانیه پیشفرض است و صفر تأخیر اولیه را غیرفعال میکند |
| AvailabilityCallback | یک آزمون اختیاری بدون واکشی برای محدودههای بایتیای که از قبل در ذخیرهسازی تدریجی موجودند |
مقادیر بازگشتی
| 0 | آرگومانهای مبدأ نامعتبر بود یا PDF قابل بارگذاری نبود؛ LastErrorCode را بررسی کنید |
|---|---|
| 1 | سند بارگذاری و انتخاب شد |
توضیحات
callback خواندن آفستهای مطلق صفرمبنا دریافت میکند و نباید بیش از Count بایت در Buffer بنویسد و تعداد نوشتهشده را برگرداندهدف callback و ذخیرهسازی پشت آن باید تا بستهشدن سند بارگذاریشده معتبر بمانند، چون رندر صفحه، استخراج و ذخیره میتوانند بعداً محدودههای بیشتری درخواست کنندفراخوانیها همگاماند و ممکن است به ترتیب غیرتوالی برسند؛ نتیجه کوتاه در انتهای فیزیکی مبدأ پذیرفته میشود، در حالی که نتیجه صفر غیرمنتظره باعث شکست بارگذاری یا عملیات بهتعویقافتاده جاری میشودوقتی
AvailabilityCallback منتسب شده، تنها وقتی مقدار غیرصفر برگردانید که کل محدوده درخواستی بلافاصله و بدون انتقال یا ورودی/خروجی مسدودکننده قابل خواندن باشدمحدوده ذخیرهشده بدون توجه به نتیجه callback در دسترس است؛ callback برابر
Nil با تلقی هر محدوده مبدأ معتبر بهعنوان در دسترس، رفتار همگام را حفظ میکندقطعههای همتراز از واکشی تکراری انتقال برای خواندنهای همپوشان میپرهیزند و بودجه بایتی، بار نگهداشتهشده را مستقل از اندازه سند محدود میکندخواندنهای بهتعویقافتاده شیء و قطعه از آفستهای مطلق استفاده میکنند، پس کارهای همزمان درخواستهای همقطعه را به اشتراک میگذارند و قطعههای مجاور در صف را بدون تغییر نشانگر مکانی جریان ادغام میکنندcallbackهای مبدأ سری میشوند و نباید بهصورت بازگشتی از همان جریان محدوده بخوانندبرای آزمون وابستگیهای صفحه، فرم یا شیء غیرمستقیم، بدون خواندن محدودههای گزارششده بهعنوان غایب، از
GetRangeSourceDataAvailability
GetRangeSourceCacheInfo استفاده کنیدبرای مشاهده یا تغییر حافظه نهان فعال از SetRangeSourceCacheLimit، ClearRangeSourceCache و