compactPDF {tools}R Documentation

Compact PDF Files

Description

Re-save PDF files (especially vignettes) more compactly. Support function for R CMD build --compact-vignettes.

Usage

compactPDF(paths, qpdf = Sys.getenv("R_QPDF", "qpdf"),
           gs_cmd = Sys.getenv("R_GSCMD", ""),
           gs_quality = Sys.getenv("GS_QUALITY", "none"),
           gs_extras = character())

Arguments

paths

A character vector of paths to PDF files, or a length-one character vector naming a directory, when all ‘.pdf’ files in that directory will be used.

qpdf

Character string giving the path to the qpdf command.

gs_cmd

Character string giving the path to the GhostScript executable, if that is to be used. On Windows this is the path to ‘gswin32c.exe’ or ‘gswin64c.exe’.

gs_quality

A character string indicating the quality required: the options are "none" (so GhostScript is not used), "printer" (300dpi), "ebook" (150dpi) and "screen" (72dpi).

gs_extras

An optional character vector of further options to be passed to GhostScript.

Details

This by default makes use of qpdf, available from http://qpdf.sourceforge.net/ (including as a Windows binary) and included with the CRAN Mac OS X distribution of R. If gs_cmd is non-empty and gs_quality != "none", GhostScript will used instead. If gs_quality != "none" and gs_cmd is empty, an attempt will be made to find a GhostScript executable.

qpdf or gs_cmd is run on all PDF files found, and those which are reduced in size by at least 10% and 10Kb are replaced.

The strategy of our use of qpdf is to (losslessly) compress both PDF streams and objects. Ghostscript compresses streams and more (including downsampling and compressing embedded images) and consequently is much slower and may lose quality (but can also produce much smaller PDF files). However, quality "ebook" is perfectly adequate for screen viewing and printing on laser printers.

Where PDF files are changed they will become PDF version 1.5 files: these have been supported by Acrobat Reader 6 since 2003, so this is very unlikely to cause difficulties.

Stream compression is what most often has large gains: R's pdf device prior to R 2.14.0 did not use it, and older vignette PDFs often benefit from being re-generated. Most PDF documents are generated with object compression, but this does not seem to be the default for MiKTeX's pdflatex.

Value

An object of class c("compactPDF", "data.frame") with format and print methods. This has two columns, the old and new sizes in bytes for the files that were changed.

Note

The external tools used may change in future releases.

See Also

resaveRdaFiles.

Many other (and sometimes more effective) tools to compact PDF files are available, including Adobe Acrobat (not Reader). See the ‘Writing R Extensions’ manual.


[Package tools version 2.14.2 ]