THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

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

به‌جای دنباله متنی xref ... trailer یک جریان cross-reference از نوع PDF 1.5 با /Type /XRef صادر کنید (ISO 32000-1 7.5.8). محتوای کانتینر با Flate و پیش‌بینی PNG Up فشرده می‌شود (/DecodeParms /Predictor 12)، عرض فیلدها در /W با بازهٔ واقعی offsetها تطبیق می‌یابد (به‌جای برش، فراتر از 4 GiB پهن می‌شود) و حفره‌های لیست آزاد در زیربخش‌های /Index جمع می‌شوند تا شماره‌های شیء پراکنده دیگر به‌ازای هرکدام یک ردیف کامل مصرف نکنند

 

نحو Delphi:

property UseXRefStream: Boolean;

 

نحو C++:

__property bool UseXRefStream;

 

توضیح

وقتی UseXRefStream برابر true باشد، EndDoc به‌جای جدول متنی قدیمی xref به‌همراه trailer و startxref یک شیء جریان غیرمستقیم /Type /XRef می‌نویسد. مدخل‌ها از /W [1 4 2] استفاده می‌کنند: یک فیلد نوع یک‌بایتی، یک offset چهار‌بایتی (یا شماره میزبان شیء فشرده‌شده)، و یک generation دو‌بایتی (یا اندیس شیء فشرده‌شده). کل جدول با FlateDecode فشرده می‌شود و معمولاً سربار xref را در سندهای بزرگ 4 تا 10 برابر کاهش می‌دهد

 

جریان‌های XRef پیش‌نیاز قطعی ویژگی UseObjectStreams هستند: فقط جریان دودویی xref می‌تواند مدخل‌های شیء فشرده نوع 2 را که به کانتینرهای /Type /ObjStm اشاره می‌کنند کدگذاری کند. خاموش کردن UseXRefStream به‌طور خودکار UseObjectStreams را هنگام ذخیره غیرفعال می‌کند

 

Default value: false (opt-in - جدول متنی xref را برای ابزارهایی که واژه xref را به‌صورت ثابت کد کرده‌اند و برای بیشترین سازگاری با PDF 1.4 و خواننده‌های قدیمی‌تر نگه می‌دارد)

اگر Version سند پایین‌تر از PDF 1.5 باشد، تنظیم UseXRefStream روی true هنگام ذخیره بی‌صدا نادیده گرفته می‌شود و به‌جای آن xref متنی صادر می‌شود

 

نمونه کد

HPDF := THotPDF.Create( nil );
try
  HPDF.FileName := 'c:\Output.pdf';
  HPDF.Version := pdf15;          // Required for XRef streams
  HPDF.UseXRefStream := true;     // Emit /Type /XRef instead of xref table
  HPDF.UseObjectStreams := true;  // Optional: also pack 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;

 

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

UseObjectStreams, Compression, Version, PDF Filter Support