2

I have created powerpoint files using officer package and I would also like to save them as pdf from R (dont want to manualy open and save as pdf each file). Is this possible?

det
  • 5,013
  • 1
  • 8
  • 16

3 Answers3

7

you can save the powerpoint object edited using the code which is posted here: create pdf in addition to word docx using officer.

You will need to first install pdftools and libreoffice

library(pdftools)
office_shot <- function( file, wd = getwd() ){
  cmd_ <- sprintf(
    "/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to pdf --outdir %s %s",
    wd, file )
  system(cmd_)

  pdf_file <- gsub("\\.(docx|pptx)$", ".pdf", basename(file))
  pdf_file
}
office_shot(file = "your_presentation.pptx")

Note that the author of the officer package is the one who referred someone to this response.

Corey Pembleton
  • 717
  • 9
  • 23
4

Note that the answer from Corey Pembleton has the LibreOffice iOS path. (Which I personally didn't initially notice). The Windows path would be something like "C:/Program Files/LibreOffice/program/soffice.exe".

Since the initial answer provided by Corey, an example using docxtractr::convert_to_pdf can now be found here. The package and function are the ones John M commented in Corey initial answer.

0

An easy solution to this question is to use convert_to_pdf function from docxtractr package. Note: this solution requires to download LibreOffice from here. I used the following order.

First, I need to set the path to LibreOffice and soffice.exe

library(docxtractr)
set_libreoffice_path("C:/Program Files/LibreOffice/program/soffice.exe")

Second, I set the path of the PowerPoint document I want to convert to pdf.

pptx_path <- "G:/My Drive/Courses/Aysem/Certifications/September17_Part2.pptx"

Third, convert it using convert_to_pdf function.

pdf <- convert_to_pdf(pptx_path, pdf_file = tempfile(fileext = ".pdf"))

Be careful here. The converted pdf file is saved in a local temporary folder. Here is mine to give you an idea. Just go and copy it from the temporary folder.

"C:\\Users\\MEHMET~1\\AppData\\Local\\Temp\\RtmpqAaudc\\file3eec51d77d18.pdf"

EDIT: A quick solution to find where the converted pdf is saved. Just replace the third step with the following line of code. You can set the path where you want to save. You don't need to look for the weird local temp folder.

pdf <- convert_to_pdf(pptx_path, pdf_file = sub("[.]pptx", ".pdf", pptx_path))
Mehmet Yildirim
  • 471
  • 1
  • 4
  • 17