在R中将pptx保存为pdf

问题描述 投票:0回答:4

我已经使用officer包创建了powerpoint文件,我还想从R将它们保存为pdf(不想手动打开每个文件并将其另存为pdf)。这可能吗?

r officer
4个回答
7
投票

您可以保存使用此处发布的代码编辑的powerpoint对象:使用officer除了word docx之外还创建pdf。

您需要先安装

pdftools

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

请注意,

officer

包的作者是
推荐某人此回复的人。


4
投票
请注意,

Corey Pembleton 的答案具有 LibreOffice iOS 路径。 (我个人最初没有注意到)。 Windows 路径类似于 "C:/Program Files/LibreOffice/program/soffice.exe"

由于 Corey 提供了最初的答案,现在可以在此处找到使用

docxtractr::convert_to_pdf

 
的示例。 包和函数是 John M 在 Corey 初始答案中评论的


0
投票
解决这个问题的一个简单方法是使用

convert_to_pdf

 包中的 
docxtractr
 函数。注意:此解决方案需要从
此处下载 LibreOffice。我使用了以下顺序。

首先,我需要设置 LibreOffice 和 soffice.exe 的路径

library(docxtractr) set_libreoffice_path("C:/Program Files/LibreOffice/program/soffice.exe")
其次,我设置要转换为pdf的PowerPoint文档的路径。

pptx_path <- "G:/My Drive/Courses/Aysem/Certifications/September17_Part2.pptx"
第三,使用

convert_to_pdf

函数进行转换。

pdf <- convert_to_pdf(pptx_path, pdf_file = tempfile(fileext = ".pdf"))
这里要小心。转换后的 pdf 文件保存在本地临时文件夹中。这是我给你一个想法。只需从临时文件夹中复制它即可。

"C:\\Users\\MEHMET~1\\AppData\\Local\\Temp\\RtmpqAaudc\\file3eec51d77d18.pdf"
编辑:查找转换后的 pdf 保存位置的快速解决方案。只需将第三步替换为以下代码行即可。您可以设置要保存的路径。您不需要寻找奇怪的本地临时文件夹。

pdf <- convert_to_pdf(pptx_path, pdf_file = sub("[.]pptx", ".pdf", pptx_path))
    

0
投票
这里有一种可以考虑使用 R 将 PowerPoint 转换为 PDF 的方法:

library(RDCOMClient) path1 <- "D:\\my_Power_Point.pptx" path2 <- "D:\\my_Power_Point_In_PDF_Format.pdf" pptapp <- COMCreate("PowerPoint.Application") pptapp[["Visible"]] <- TRUE pptpres <- pptapp$Presentations()$Open(path1) pptpres$SaveAs(path2, FileFormat = 32)
    
© www.soinside.com 2019 - 2024. All rights reserved.