THotPDF.CompressDocument

THotPDF

 

Properties  CompactFontSubsetting  EnableFontSubsetting

Activa de una sola vez todas las opciones de escritura que hacen el documento más pequeño

 

Sintaxis Delphi:

property CompressDocument: Boolean;

 

Sintaxis C++:

__property bool CompressDocument;

 

Descripción

Asigne CompressDocument a true antes de BeginDoc para escribir el siguiente documento tan pequeño como HotPDF pueda lograr sin cambiar su aspecto. Para ese documento, BeginDoc activa:

  • Compresión FlateDecode del contenido de página y de otros streams, con el nivel máximo de compresión
  • Un cross-reference stream con object streams, que empaqueta la mayoría de los objetos en contenedores comprimidos (ISO 32000-1 7.5.7 y 7.5.8); cada contenedor aloja hasta 250 objetos en lugar de 100, porque menos contenedores y más grandes comprimen mejor. Un límite fijado mediante ConfigureAdaptiveObjectStreamPacking se respeta
  • Subsetting de fuentes, con subconjuntos de fuentes compactos, de modo que cada fuente incrustada conserva solo los glifos que el documento muestra

Los object streams necesitan PDF 1.5. Cuando Version es más antigua, se eleva a PDF 1.5 salvo que la versión esté bloqueada; la salida PDF/A-1 conserva su tabla de referencias cruzadas clásica, como exige el estándar

 

CompressDocument no cambia los ajustes que usted eligió. EndDoc restaura los valores de Compression, CompressionLevel, UseXRefStream, UseObjectStreams, EnableFontSubsetting, CompactFontSubsetting, el límite de objetos por contenedor y la elevación de versión cuando se escribe el documento, así que el siguiente documento sin CompressDocument se escribe como antes. Las imágenes conservan sus propios ajustes de compresión; nada se remuestrea ni se recomprime con pérdida

 

La propiedad viene desactivada por defecto. Un documento de tres páginas con texto mezclado de inglés y chino en Arial y SimSun pasa de unos 10 MB a unos 20 KB, y la mayor parte del ahorro viene del subsetting de fuentes. La contrapartida es que la salida resulta más difícil de editar después: las fuentes de subconjunto no pueden mostrar caracteres que el documento no usa, y los object streams comprimidos no se pueden leer en un editor de texto

 

Ejemplo:

PDF.CompressDocument := True;
        PDF.BeginDoc;
        PDF.CurrentPage.SetFont('SimSun', [], 11);
        PDF.CurrentPage.TextOut(40, 80, 0, 'Compressed output');
        PDF.EndDoc;

 

Véase también: CompactFontSubsetting, EnableFontSubsetting, CompressLoadedDocument