10

我想使用 R 合并已经存在(已经保存在我的计算机中)的 PDF 文件。

我已经尝试使用开源软件来合并它们并且效果很好,但是由于我有数百个文件要合并在一起,我希望能更快地找到一些东西(我的目标是自动创建或更新文件,只需运行 R 命令)。

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

谢谢!

4

2 回答 2

7

对于不依赖于使用 system()or调用底层操作系统的基于 R 的解决方案system2(),我建议使用{qpdf} 包

您可以将此软件包安装为:

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")
于 2021-04-07T12:38:36.827 回答
1

如果您安装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"
于 2017-08-02T17:40:07.783 回答