THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

先頭  前へ  次へ

legacy textual xref ... trailer sequence の代わりに PDF 1.5 /Type /XRef cross-reference stream (ISO 32000-1 7.5.8) を出力します

 

Delphi syntax:

property UseXRefStream: Boolean;

 

C++ syntax:

__property bool UseXRefStream;

 

説明

UseXRefStream が true の場合、EndDoc は legacy textual xref table + trailer + startxref sequence の代わりに単一の /Type /XRef indirect stream object を書き込みます。entries は /W [1 4 2] を使用します。1-byte type field、4-byte offset (または compressed-object host number)、2-byte generation (または compressed-object index) です。table 全体は FlateDecode-compressed され、大きな documents では通常 xref overhead を 4-10 倍削減します

 

XRef streams は UseObjectStreams feature の hard prerequisite です。/Type /ObjStm containers を指す type-2 compressed-object entries を encode できるのは binary xref stream だけです。UseXRefStream を off にすると、save time に UseObjectStreams は自動的に disabled になります

 

Default value: false (opt-in です。xref keyword を hard-code する tooling と PDF 1.4 / earlier readers への最大互換性のため、textual xref table を維持します)

UseXRefStream を true に設定しても、document の Version が PDF 1.5 未満の場合は save time に silently ignored され、代わりに textual xref が出力されます

 

Code Example

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