THotPDF.UseObjectStreams Property

 

THotPDF.UseObjectStreams

THotPDF

 

Arriba  Anterior  Siguiente

Empaqueta objetos indirectos elegibles en streams contenedores PDF 1.5 /Type /ObjStm (ISO 32000-1 7.5.7) para reducir el tamaño del PDF en disco

 

Sintaxis Delphi:

property UseObjectStreams: Boolean;

 

Sintaxis C++:

__property bool UseObjectStreams;

 

Descripción

Cuando UseObjectStreams es true (y UseXRefStream también es true), EndDoc empaqueta cada objeto indirecto elegible - diccionarios, arrays, números, nombres, strings, booleanos, nulls - en uno o más streams contenedores /Type /ObjStm según ISO 32000-1 7.5.7. El stream de referencias cruzadas referencia entonces los objetos empaquetados mediante entradas type-2 (número de objeto ObjStm host + índice de entrada dentro de ese stream), por lo que se eliminan los bytes de marco N G obj ... endobj individuales y las entradas xref textuales por fila

 

Se combina de forma natural con la propiedad UseXRefStream para la canalización de escritura PDF 1.5+ más compacta. El empaquetador ObjStm deja sin comprimir los objetos stream, el diccionario de cifrado y los diccionarios Catalog e Info apuntados por el trailer, de modo que incluso analizadores PDF mínimos puedan localizar las raíces del documento y descifrar contenido

 

Valor predeterminado: false (opt-in)

Establecer UseObjectStreams en true se degrada silenciosamente a false cuando UseXRefStream está desactivado (las entradas de tipo 2 no son representables en la tabla xref textual según la especificación) o cuando Version es inferior a PDF 1.5

 

Ejemplo de código

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;

 

Size reduction

En documentos dominados por diccionarios indirectos pequeños (documentos multipágina, anotaciones, widgets AcroForm, elementos del árbol de estructura, capas Optional Content), el ahorro suele ser del 20-40% del tamaño de archivo posterior a FlateDecode. Una prueba smoke de 30 páginas solo con gráficos se reduce de 14502 bytes a 8488 bytes (-41.5%)

 

Véase también

UseXRefStream, Compression, Version, Soporte de filtros PDF