使用R合并现有PDF文件

时间:2013-07-09 16:01:45

标签: r pdf

我想使用R.

合并已存在的PDF文件(已保存在我的电脑中)

我已经尝试使用开源软件来合并它们并且工作正常但是由于我有几百个文件要合并在一起,我希望能找到更快一点的东西(我的目标是自动创建文件) - 或者只需运行R命令即可更新。

我习惯了R所以我想找到一种方法来使用这个程序创建这个新的多页PDF。有什么功能可以帮我吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

对于不依赖于调用底层操作系统的基于 R 的解决方案 system()system2(),我会推荐 {qpdf} package

您可以将这个包安装为:

install.packages("qpdf")

然后您将需要使用 pdf_combine() 函数。检查其 文档为:

?qpdf::pdf_combine

然后您可以根据需要合并任意数量的 pdf。我在这里合并 file.pdffile2.pdffile3.pdf 放入名为 output.pdf 的新文件中:

qpdf::pdf_combine(input = c("file.pdf", "file2.pdf", "file3.pdf"),
                  output = "output.pdf")

答案 1 :(得分:0)

如果您安装pdftk(找到here),则可以使用以下功能:

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"