создать PDF в дополнение к слову DOCX, используя офицер - PullRequest
0 голосов
/ 18 сентября 2018

Я использую сотрудника (используется для репортеров) в цикле для создания 150 уникальных документов.Однако мне нужно, чтобы эти документы были экспортированы из R как слово docx И pdfs.

Есть ли способ экспортировать документ, созданный офицером, в pdf?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Я использую RDCOMClient для преобразования документов, созданных в OfficeR, в PDF.

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

Я нашел здесь FileFormat = 17 бит https://docs.microsoft.com/en-us/office/vba/api/word.wdexportformat

Я смогпоместите все вышеперечисленное в цикл для быстрого преобразования нескольких документов docx в PDF.

Надеюсь, это поможет!

0 голосов
/ 18 сентября 2018

Это возможно, но решение, которое у меня есть, зависит от libreoffice.Вот код, который я использую.Надеюсь, это поможет.У меня есть жестко запрограммированный путь к libreoffice, поэтому вам, вероятно, придется адаптировать или улучшить код для переменной cmd_.

Код преобразует файл PPTX или DOCX в 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")
...