Basic Usage of cpp11qpdf

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

Load the package and example file

Load the cpp11qpdf package and set the path to an example PDF file included with R for demonstration purposes.

library(cpp11qpdf)
input_pdf <- system.file("examples", "sufganiyot.pdf", package = "cpp11qpdf")

Compressing a PDF

To compress a PDF file, use the pdf_compress function. This function takes an input PDF file and an output file path.

output_pdf <- tempfile(fileext = ".pdf")
pdf_compress(input_pdf, output_pdf, password = "")
file.exists(output_pdf)

Rotating Pages in a PDF

To rotate pages in a PDF, use the pdf_rotate_pages function. This function takes an input PDF file, the pages to rotate, the angle of rotation, and the output file path.

output_pdf <- tempfile(fileext = ".pdf")
pdf_rotate_pages(input_pdf, pages = 1, angle = 90, output = output_pdf,
  password = "")
file.exists(output_pdf)

Splitting a PDF

To split a PDF into individual pages, use the pdf_split function. This function takes an input PDF file and an output file prefix.

output_prefix <- tempfile()
output_files <- pdf_split(input_pdf, output_prefix, password = "")
output_files

Combining Multiple PDFs

To combine multiple PDF files into a single PDF, use the pdf_combine function. This function takes a vector of input PDF files and an output file path.

# using the output files from the previous example
output_pdf <- tempfile(fileext = ".pdf")
pdf_combine(output_files, output_pdf, password = "")
file.exists(output_pdf)

Extracting Pages from a PDF

To extract specific pages from a PDF, use the pdf_subset function. This function takes an input PDF file, the pages to extract, and the output file path.

output_pdf <- tempfile(fileext = ".pdf")
pdf_subset(input_pdf, 1, output_pdf, password = "")
file.exists(output_pdf)

Overlaying a Stamp on a PDF

To overlay a stamp on each page of a PDF, use the pdf_overlay_stamp function. This function takes an input PDF file, a stamp PDF file, and the output file path.

stamp_pdf <- system.file("examples", "header.pdf", package = "cpp11qpdf")
output_pdf <- tempfile(fileext = ".pdf")
pdf_overlay_stamp(input_pdf, stamp_pdf, output_pdf, password = "")
file.exists(output_pdf)

Now the pages have a header that is not a part of the original PDF.

knitr::include_graphics("added-header.png")


Try the cpp11qpdf package in your browser

Any scripts or data that you put into this service are public.

cpp11qpdf documentation built on April 4, 2025, 4:39 a.m.