--- title: "Basic Usage of cpp11qpdf" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Basic Usage of cpp11qpdf} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} 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. ```{r load} 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. ```{r compress} 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. ```{r rotate} 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. ```{r split} 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. ```{r combine} # 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. ```{r subset} 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. ```{r overlay} 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. ```{r preview, echo = FALSE} knitr::include_graphics("added-header.png") ```