我曾经写过一篇关于将 graphis 与外部程序结合起来的博客,并收到了一位读者(-单击此处-)关于完全在 R 中使用 ghostscript 实现这一点的精彩评论,如下所示。我最近一直在使用它,并想与他人分享。我想修改它以使功能更直观,检测 ghostscript 类型是我想做但做不到的一个 mod。unix 与 windows 很容易通过.Platform
. 症结在于我挣扎的Windows 32 vs. 64。
如何使用 R 检测正在运行的 ghostscript 版本(gswin32c 或 gswin64c)?仅仅看计算机的规格是不够的,因为我在 Win 64 机器上运行 gswin32c。这个想法是完全删除 os 参数或将其设置为NULL
并让函数尝试访问此信息。
mergePDF <- function(infiles, outfile, os = "UNIX") {
version <- switch(os,
UNIX = "gs",
Win32 = "gswin32c",
Win64 = "gswin64c")
pre = " -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="
system(paste(paste(version, pre, outfile, sep = ""), infiles, collapse = " "))
}
pdf("file1.pdf", width = 10, height = 8)
plot(1:10, col="red", pch = 19)
dev.off()
pdf("file2.pdf", width = 16, height = 8)
plot(1:10)
dev.off()
mergePDF("file1.pdf file2.pdf", "mergefromR.pdf", "Win32")