【发布时间】:2014-11-10 11:59:49
【问题描述】:
下面的函数由@Tyler Rinker 提供,可以在here找到
我正在努力的功能:
mergePDF <- function(..., file, gsversion = NULL, in.file = NULL) {
if (is.null(in.file)) {
in.file <- substitute(...())
}
infiles <- paste(unlist(lapply(file.folder, function(y) as.character(y))),
collapse = " ")
if (is.null(gsversion)) {
gsversion <- names(which(Sys.which(c("gswin64c")) != paste("C:/Program Files/gs9.15/bin/gswin64c.exe",sep="")))
}
pre = " -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="
system(paste(paste(gsversion, pre, file, sep = ""), infiles, collapse=""))
}
我想将多个现有的 pdf 文件绑定(组合)成 1 个 pdf 文件。我有多个根据id 命名的文件,例如:doc_123232.pdf、doc_434324.pdf 等。
如何设置in.file?
理想情况下,我只想设置存储文件的文件夹:例如:Sys.glob("C:/Path/doc*.pdf")
编辑:我现在只尝试了 1 个 pdf 页面,而不是多个文件:
mergePDF(file="C:/1pagepdf.pdf",in.file="C:/path/doc_123232.pdf")
我收到错误:had status 127 ==> 显然我不明白参数in.file
【问题讨论】:
-
你试过什么?默认情况下,
in.file是根据...中的参数自动构造的,但您也可以将字符向量显式传递给in.file参数。 -
我尝试过作为 char 向量传递,但仍然收到错误 127
-
我会改用@agstudy 对那个问题的回答。比构建 R 函数来进行系统调用(对 Ghostscript)容易得多。
-
当然,但如果提供的该功能适用于@Tyler Rinker,那么一般情况下也应该有效。
标签: r