create pdf in addition to word docx using officer

我的梦境 提交于 2019-12-11 05:20:03

问题


I am using officer (used to use reporters) within a loop to create 150 unique documents. I need these documents however to be exported from R as word docx AND pdfs.

Is there a way to export the document created with officer to a pdf?


回答1:


That's possible but the solution I have depends on libreoffice. Here is the code I am using. Hope it will help. I've hard-coded libreoffice path then you probably will have to adapt or improve the code for variable cmd_.

The code is transforming a PPTX or DOCX file to PDF.

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")



回答2:


I've been using RDCOMClient to convert my OfficeR created docx's to PDFs.

library(RDCOMClient)

file <- "C:/path/to your/doc.docx"
wordApp <- COMCreate("Word.Application") #creates COM object
wordApp[["Documents"]]$Open(Filename=file) #opens your docx in wordApp
wordApp[["ActiveDocument"]]$SaveAs("C:/path/to your/doc.pdf"), FileFormat=17) #saves as PDF 
wordApp$Quit() #quits the COM Word application

I found the FileFormat=17 bit here https://docs.microsoft.com/en-us/office/vba/api/word.wdexportformat

I've been able to put the above in a loop to convert multiple docx's to PDFs quickly, too.

Hope this helps!



来源:https://stackoverflow.com/questions/52388945/create-pdf-in-addition-to-word-docx-using-officer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!