LoadFromRangeSource

การจัดการเอกสาร, ประสิทธิภาพ

คำอธิบาย

โหลดและเลือก PDF ผ่านคอลแบ็กเข้าถึงแบบสุ่มแบบซิงโครนัส ทำให้ไคลเอนต์ 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คอลแบ็กที่คัดลอกไบต์สำหรับออฟเซตซอร์สแบบสัมบูรณ์
Passwordรหัสผ่านที่ใช้เปิด PDF หรือสตริงว่างสำหรับเอกสารที่ไม่เข้ารหัสลับ
ChunkSizeความละเอียดการดึงช่วงแบบจัดแนว ศูนย์เลือกค่าเริ่มต้น 64 KiB และค่าที่ต่ำกว่า 4096 ก็ใช้ค่าเริ่มต้นด้วย
CacheLimitBytesจำนวนไบต์สูงสุดที่เก็บครอบคลุมหน้าต่างที่ใช้ล่าสุด ศูนย์เลือกค่าเริ่มต้น 4 MiB และค่าที่ต่ำกว่าหนึ่งก้อนถูกยกขึ้นเป็นหนึ่งก้อน
CoalesceWindowMSหน้าต่างการรวบรวมสำหรับก้อนแรกที่ยังไม่แคชของการอ่านแบบสัมบูรณ์แต่ละครั้ง ค่าเริ่มต้น 2 มิลลิวินาที และศูนย์ปิดการหน่วงเริ่มต้น
AvailabilityCallbackการทดสอบเสริมที่ไม่ดึงข้อมูล เพื่อตรวจช่วงไบต์ที่มีอยู่แล้วในพื้นที่จัดเก็บแบบค่อยเป็นค่อยไป

ค่าที่ส่งกลับ

0อาร์กิวเมนต์ซอร์สไม่ถูกต้องหรือโหลด PDF ไม่สำเร็จ ให้ตรวจ LastErrorCode
1โหลดและเลือกเอกสารแล้ว

หมายเหตุ

คอลแบ็กอ่านได้รับออฟเซตแบบสัมบูรณ์แบบนับจาก 0 และต้องเขียนไม่เกิน Count ไบต์ลง Buffer โดยส่งคืนจำนวนที่เขียนปลายทางของคอลแบ็กและพื้นที่จัดเก็บรองรับต้องยังใช้ได้จนกว่าเอกสารที่โหลดไว้จะถูกปิด เพราะการเรนเดอร์หน้า การดึงข้อมูล และการบันทึกอาจร้องขอช่วงเพิ่มเติมภายหลังการเรียกเป็นแบบซิงโครนัสและอาจมาถึงไม่เรียงลำดับ ผลที่สั้นกว่ายอมรับได้ที่ท้ายไฟล์ตามกายภาพ ส่วนผลศูนย์ที่ไม่คาดคิดทำให้การโหลดหรือการดำเนินการเลื่อนเวลาปัจจุบันล้มเหลวเมื่อกำหนด

AvailabilityCallback ไว้ ให้ส่งคืนค่าไม่เป็นศูนย์เมื่ออ่านช่วงที่ร้องขอทั้งช่วงได้ทันทีโดยไม่ต้องขนส่งหรือ I/O แบบบล็อกเท่านั้นช่วงที่แคชไว้พร้อมใช้ไม่ว่าผลของคอลแบ็กจะเป็นอย่างไร คอลแบ็ก

Nil คงพฤติกรรมแบบซิงโครนัสโดยถือว่าช่วงซอร์สที่ถูกต้องทุกช่วงพร้อมใช้ก้อนที่จัดแนวเลี่ยงการดึงข้อมูลผ่านขนส่งซ้ำสำหรับการอ่านที่ซ้อนทับกัน ส่วนงบไบต์จำกัดเพย์โหลดที่เก็บไว้โดยไม่ขึ้นกับขนาดเอกสารการอ่านวัตถุและเซกเมนต์แบบเลื่อนเวลาใช้ออฟเซตแบบสัมบูรณ์ งานพร้อมกันจึงใช้คำขอก้อนเดียวกันร่วมกันและรวมก้อนที่ติดกันในคิว โดยไม่เปลี่ยนตัวชี้ตำแหน่งของสตรีมคอลแบ็กซอร์สถูกเรียงให้ทำงานทีละอัน และต้องไม่อ่านจากสตรีมช่วงเดียวกันแบบเรียกซ้ำใช้

GetRangeSourceDataAvailability

GetRangeSourceCacheInfo ทดสอบการขึ้นต่อกันของหน้า ฟอร์ม หรือวัตถุทางอ้อม โดยไม่อ่านช่วงที่รายงานว่าขาดหายใช้ SetRangeSourceCacheLimit, ClearRangeSourceCache และ