Skip to contents

Remove whitespace margins using https://ctan.org/pkg/pdfcrop and optionally embed fonts using grDevices::embedFonts(). You may install pdfcrop using TinyTeX (https://cran.r-project.org/package=tinytex) with tinytex::tlmgr_install('pdfcrop').

Usage

pdf_crop(
  filename,
  mustWork = FALSE,
  pdfcrop = Sys.which("pdfcrop"),
  embed_fonts = FALSE
)

Arguments

filename

Filename of a PDF file to crop. The file will be overwritten.

mustWork

If TRUE, then give an error if the file cannot be cropped.

pdfcrop

Path to the pdfcrop utility.

embed_fonts

(logical(1)) If TRUE, use grDevices::embedFonts() to embed fonts.

Value

Nothing

Details

You may also wish to consider extrafont::embed_fonts() (https://cran.r-project.org/package=extrafont).

library(extrafont)
# If you need to specify the path to Ghostscript (probably not needed in Linux)
Sys.setenv(R_GSCMD = "C:/Program Files/gs/gs9.56.1/bin/gswin64c.exe")
embed_fonts("original.pdf", outfile = "new.pdf")

As an alternative, saving the PDF with grDevices::cairo_pdf() should already embed the fonts.

Examples

# \dontrun{
extdata_path <- system.file(package = "eaf", "extdata")
A1 <- read_datasets(file.path(extdata_path, "wrots_l100w10_dat"))
A2 <- read_datasets(file.path(extdata_path, "wrots_l10w100_dat"))
pdf(file = "eaf.pdf", onefile = TRUE, width = 5, height = 4)
eafplot(list(A1 = A1, A2 = A2), percentiles = 50, sci.notation=TRUE)
dev.off()
#> agg_png 
#>       2 
pdf_crop("eaf.pdf")
#> Warning: pdfcrop not found, not cropping
# }