THotPDF.UseObjectStreams Property

 

THotPDF.UseObjectStreams

THotPDF

 

بالا  قبلی  بعدی

اشیای غیرمستقیم واجد شرایط را در جریان‌های کانتینری PDF 1.5 با /Type /ObjStm بسته‌بندی کنید (ISO 32000-1 7.5.7) تا اندازه فایل PDF روی دیسک کمتر شود

 

نحو Delphi:

property UseObjectStreams: Boolean;

 

نحو C++:

__property bool UseObjectStreams;

 

توضیح

وقتی UseObjectStreams برابر true باشد (و UseXRefStream هم true باشد)، EndDoc همه اشیای غیرمستقیم واجد شرایط - فرهنگ‌لغت‌ها، آرایه‌ها، عددها، نام‌ها، رشته‌ها، بولی‌ها و null - را طبق ISO 32000-1 7.5.7 در یک یا چند جریان کانتینری /Type /ObjStm بسته‌بندی می‌کند. سپس جریان cross-reference اشیای بسته‌بندی‌شده را از طریق مدخل‌های نوع 2 ارجاع می‌دهد (شماره شیء میزبان ObjStm به‌علاوه اندیس مدخل داخل آن جریان)، بنابراین بایت‌های قاب‌بندی جداگانه N G obj ... endobj و مدخل‌های متنی xref در هر ردیف حذف می‌شوند

 

این ویژگی به‌صورت طبیعی با UseXRefStream جفت می‌شود تا فشرده‌ترین مسیر نوشتن PDF 1.5+ را فراهم کند. بسته‌بند ObjStm، اشیای stream، فرهنگ‌لغت رمزگذاری، و فرهنگ‌لغت‌های Catalog و Info که از trailer ارجاع می‌شوند را بدون فشرده‌سازی نگه می‌گذارد تا حتی تحلیل‌گرهای حداقلی PDF هم بتوانند ریشه‌های سند را پیدا کنند و محتوا را رمزگشایی کنند

 

Default value: false (opt-in)

اگر UseXRefStream خاموش باشد (چون مدخل‌های نوع 2 طبق مشخصات در جدول متنی xref قابل نمایش نیستند) یا اگر Version پایین‌تر از PDF 1.5 باشد، تنظیم UseObjectStreams روی true به‌صورت بی‌صدا به false برمی‌گردد

 

نمونه کد

HPDF := THotPDF.Create( nil );
try
  HPDF.FileName := 'c:\Output.pdf';
  HPDF.Version := pdf15;          // Object streams require PDF 1.5+
  HPDF.UseXRefStream := true;     // ObjStm references need a /Type /XRef stream
  HPDF.UseObjectStreams := true;  // Pack indirect objects into /Type /ObjStm
  HPDF.Compression := cmFlateDecode;
  HPDF.BeginDoc;
  HPDF.CurrentPage.TextOut( 100, 100, 0, 'Compact PDF 1.5 output' );
  HPDF.EndDoc;
finally
  HPDF.Free;
end;

 

کاهش اندازه

در سندهایی که فرهنگ‌لغت‌های کوچک غیرمستقیم در آن‌ها غالب هستند (سندهای چندصفحه‌ای، حاشیه‌نویسی‌ها، ویجت‌های AcroForm، عناصر structure tree و لایه‌های Optional Content) صرفه‌جویی معمولاً 20 تا 40 درصد اندازه فایل پس از FlateDecode است. یک smoke test سی‌صفحه‌ای فقط-گرافیک از 14502 بایت به 8488 بایت می‌رسد (41.5- درصد)

 

همچنین ببینید

UseXRefStream, Compression, Version, PDF Filter Support