Chapter 5
Compression

cpdf provides basic facilities for decompressing and compressing PDF streams.

5.1 Decompressing a Document

To decompress the streams in a PDF file, for instance to manually inspect the PDF, use:

If cpdf finds a compression type it can’t cope with, the stream is left compressed. When using -decompress, object streams are not compressed.

5.2 Compressing a Document

To compress the streams in a PDF file, use:

cpdf compresses any streams which have no compression using the FlateDecode method, with the exception of Metadata streams, which are left uncompressed.

5.3 Squeezing a Document

To squeeze a PDF file, reducing its size by an average of about twenty percent (though sometimes not at all), use:

Adding -squeeze to the command line when using another operation will squeeze the file or files upon output.

The -squeeze operation writes some information about the squeezing process to standard output. The squeezing process involves several processes which losslessly attempt to reduce the file size. It is slow, so should not be used without thought.

$ ./cpdf -squeeze in.pdf -o out.pdf  
Beginning squeeze: 123847 objects  
Squeezing... Down to 114860 objects  
Squeezing... Down to 114842 objects  
Squeezing page data  
Recompressing document

The -squeeze-log-to <filename> option writes the log to the given file instead of to standard output.