THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

Arriba  Anterior  Siguiente

Emite un stream de referencias cruzadas PDF 1.5 /Type /XRef (ISO 32000-1 7.5.8) en lugar de la secuencia textual xref ... trailer

 

Sintaxis Delphi:

property UseXRefStream: Boolean;

 

Sintaxis C++:

__property bool UseXRefStream;

 

Descripción

Cuando UseXRefStream es true, EndDoc escribe un único objeto stream indirecto /Type /XRef en lugar de la secuencia textual heredada tabla xref + trailer + startxref. Las entradas usan /W [1 4 2]: un campo de tipo de un byte, un offset de cuatro bytes (o número de host de objeto comprimido) y una generación de dos bytes (o índice de objeto comprimido). Toda la tabla se comprime con FlateDecode, lo que normalmente reduce el overhead xref de 4 a 10 veces en documentos grandes

 

Los XRef streams son un requisito estricto para la función UseObjectStreams: solo el stream xref binario puede codificar las entradas type-2 de objetos comprimidos que apuntan a contenedores /Type /ObjStm. Desactivar UseXRefStream desactiva automáticamente UseObjectStreams al guardar

 

Valor predeterminado: false (opt-in; conserva la tabla xref textual para herramientas que tienen hard-coded la palabra clave xref y para máxima compatibilidad con lectores PDF 1.4 o anteriores)

Establecer UseXRefStream en true en un documento cuya Version es inferior a PDF 1.5 se ignora silenciosamente al guardar; en su lugar se emite el xref textual

 

Ejemplo de código

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;

 

Véase también

UseObjectStreams, Compression, Version, Soporte de filtros PDF