THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

Вверх  Назад  Далее

Emit a PDF 1.5 /Type /XRef cross-reference stream (ISO 32000-1 7.5.8) instead of the textual xref ... trailer sequence.

 

Delphi syntax:

property UseXRefStream: Boolean;

 

C++ syntax:

__property bool UseXRefStream;

 

Описание

Когда UseXRefStream true, EndDoc записывает один /Type /XRef indirect stream object вместо legacy textual xref table + trailer + startxref sequence. Entries используют /W [1 4 2]: one-byte type field, four-byte offset или compressed-object host number и two-byte generation или compressed-object index. Вся таблица сжимается FlateDecode, обычно уменьшая xref overhead в 4-10 раз на больших документах

 

XRef streams — жесткое prerequisite для UseObjectStreams: только binary xref stream может кодировать type-2 compressed-object entries, указывающие в /Type /ObjStm containers. Отключение UseXRefStream автоматически отключает UseObjectStreams при save time

 

Значение по умолчанию: false (opt-in; сохраняет textual xref table для tooling, которое hard-codes keyword xref, и для максимальной совместимости с PDF 1.4 / earlier readers)

Установка UseXRefStream в true для документа с Version ниже PDF 1.5 тихо игнорируется при save time — вместо этого выводится 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