# Basic Usage of cpp11qpdf

# 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 = "")
    #> [1] "/tmp/RtmpsCdya7/file61ac6d0311b3.pdf"
    file.exists(output_pdf)
    #> [1] TRUE

# 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 = "")
    #> [1] "/tmp/RtmpsCdya7/file61ac670db2c0.pdf"
    file.exists(output_pdf)
    #> [1] TRUE

# 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
    #> [1] "/tmp/RtmpsCdya7/file61ac626e198a_1.pdf"
    #> [2] "/tmp/RtmpsCdya7/file61ac626e198a_2.pdf"

# 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 = "")
    #> [1] "/tmp/RtmpsCdya7/file61ace69db3d.pdf"
    file.exists(output_pdf)
    #> [1] TRUE

# 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 = "")
    #> [1] "/tmp/RtmpsCdya7/file61ac3f3b3af6.pdf"
    file.exists(output_pdf)
    #> [1] TRUE

# 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 = "")
    #> [1] "/tmp/RtmpsCdya7/file61ac27407e7e.pdf"
    file.exists(output_pdf)
    #> [1] TRUE

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