我想使用 R 合并已经存在(已经保存在我的计算机中)的 PDF 文件。
我已经尝试使用开源软件来合并它们并且效果很好,但是由于我有数百个文件要合并在一起,我希望能更快地找到一些东西(我的目标是自动创建或更新文件,只需运行 R 命令)。
我习惯了 R,所以我想找到一种方法来使用这个程序创建这个新的多页 PDF。有什么功能可以为我做到这一点吗?
谢谢!
对于不依赖于使用
system()
or调用底层操作系统的基于 R 的解决方案system2()
,我建议使用{qpdf} 包。
您可以将此软件包安装为:
install.packages("qpdf")
然后,您将想要使用该pdf_combine()
功能。检查其文档为:
?qpdf::pdf_combine
然后,您可以合并任意数量的 pdf。在这里我合并file.pdf
,
file2.pdf
并file3.pdf
进入一个名为的新文件output.pdf
:
qpdf::pdf_combine(input = c("file.pdf", "file2.pdf", "file3.pdf"),
output = "output.pdf")
如果您安装pdftk
(在此处找到),则可以使用以下功能:
concatenate_pdfs <- function(input_filepaths, output_filepath) {
# Take the filepath arguments and format them for use in a system command
quoted_names <- paste0('"', input_filepaths, '"')
file_list <- paste(quoted_names, collapse = " ")
output_filepath <- paste0('"', output_filepath, '"')
# Construct a system command to pdftk
system_command <- paste("pdftk",
file_list,
"cat",
"output",
output_filepath,
sep = " ")
# Invoke the command
system(command = system_command)
}
可以这样调用:
concatenate_pdfs(input_filepaths = c("My First File.pdf", "My Second File.pdf"),
output_filepath = "My Combined File.pdf")
这只是调用以下系统命令的一种用户友好方式:
pdftk "My First File.pdf" "My Second File.pdf" cat output "My Combined File.pdf"