function SaveAsObjectStream(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean;
function SaveAsObjectStream(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown; MaxObjectsPerStream: Integer = 100; MaxDecodedBytesPerStream: Integer = 65536): Boolean;
| Stream | TStream ที่รับ PDF แบบ object stream ที่สมบูรณ์ |
| FileName | พาธผลลัพธ์ที่จะถูกแทนที่เฉพาะเมื่อไฟล์ชั่วคราวที่อยู่ข้างเคียงสำเร็จเท่านั้น |
| Option | ตัวเลือกการบันทึกปกติหรือ saRemoveSecurity ส่วน saIncremental จะถูกปฏิเสธ |
| PdfVersion | เวอร์ชันผลลัพธ์ตั้งแต่ PDF 1.5 ขึ้นไป หรือ pvUnknown เพื่อคงหรือเลื่อนเวอร์ชันปัจจุบัน |
| MaxObjectsPerStream | จำนวนสมาชิกออบเจ็กต์สูงสุดต่อกลุ่ม ObjStm โดยค่าเริ่มต้นคือ 100 |
| MaxDecodedBytesPerStream | ขนาด payload ที่ถอดรหัสแล้วสูงสุดต่อกลุ่ม โดยค่าเริ่มต้นคือ 65536 ไบต์ |
True เมื่อผลลัพธ์แบบ object stream เสร็จสมบูรณ์เมธอดนี้ใช้เส้นทางการบันทึกปกติของ PDFium เป็นแหล่งเชิงความหมายก่อน จากนั้นจึงแก้ไข revision ที่ใช้งานอยู่ไม่ว่าจะเป็นแบบ classic, hybrid หรือ xref stream
สมาชิกของ object stream ที่มีอยู่แล้วจะถูกทำให้เป็นรูปธรรมก่อนที่ reference จะถูกจัดหมายเลขใหม่เป็นลำดับแบบ page-local
ออบเจ็กต์ที่ไม่ใช่ stream และมีสิทธิ์จะถูกจัดกลุ่มโดยคำนึงทั้งจำนวนสมาชิกและขนาด payload ที่ถอดรหัสแล้ว จากนั้นจึงบีบอัดด้วย Flate เฉพาะเมื่อการบีบอัดช่วยลดขนาดกลุ่มได้
catalog, ออบเจ็กต์ stream, dictionary ของลายเซ็น, ค่าความยาว stream แบบ indirect และค่าที่มีขนาดใหญ่เกินไปยังคงระบุที่อยู่โดยตรงได้
xref stream ล้วนใช้ความกว้างฟิลด์แบบ adaptive และรายการ type-2 สำหรับสมาชิกที่ถูกบีบอัดทุกตัว
saIncremental จึงไม่รองรับ และลายเซ็นดิจิทัลเดิมจะใช้ไม่ได้saRemoveSecurity เนื่องจากการจัดหมายเลขออบเจ็กต์ใหม่เปลี่ยน key การเข้ารหัสระดับออบเจ็กต์
// Balance compact output with bounded random-access decompression
Pdf.SaveAsObjectStream('report-compact.pdf', saNoIncremental, pv17, 100, 65536);