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
(
character(1)
)
Filename of a PDF file to crop. The file will be overwritten.- mustWork
(
logical1
)
IfTRUE
, then give an error if the file cannot be cropped.- pdfcrop
(
character(1)
)
Path to thepdfcrop
utility.- embed_fonts
(
logical(1)
)
IfTRUE
, usegrDevices::embedFonts()
to embed fonts.
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
extdata_path <- system.file(package = "moocore", "extdata")
A1 <- read_datasets(file.path(extdata_path, "wrots_l100w10_dat"))
A2 <- read_datasets(file.path(extdata_path, "wrots_l10w100_dat"))
filename <- tempfile("eafplot", fileext=".pdf")
pdf(file = filename, onefile = TRUE, width = 5, height = 4)
eafplot(list(A1 = A1, A2 = A2), percentiles = 50, sci.notation = TRUE)
dev.off()
#> pdf
#> 2
try(pdf_crop(filename)) # This may fail if pdfcrop is not installed.
#> Warning: pdfcrop not found, not cropping