根据R中的页面拆分PDF

Split PDF according to pages in R

我有一个包含多页的 pdf 文件,但我只对其中的一小部分感兴趣。 例如,我的原始 PDF 有 30 页,我只想要第 10 到 16 页。

我尝试使用 tabulizer 包中的函数 split_pdf,它只将 pdf 页面拆分到页面(产生 200 个文件,每页一个),然后是 merge_pdfs(合并 pdf文件)。 它工作正常,但需要很长时间(我有大约 2000 个 pdf 文件我必须拆分)。

这是我使用的代码:

split = split_pdf('file_path')

start = 10
end = 16

merge_pdfs(split[start:end], 'saving_path')

我找不到更好的选择来执行此操作。 任何帮助将不胜感激。

不幸的是,我发现有点不清楚您的 PDF 中包含什么类型的数据以及您试图从中提取什么。所以我概述了两种方法。

  1. 如果您在 pdf 中有表格,您应该能够使用以下方法从所述页面中提取数据:

    tab <- tabulizer::extract_tables(file = "path/file.pdf", pages = 10:16)

  2. 如果你只想要文本,你应该使用 pdftools 这样会快很多:

    text <- pdftools::pdf_text("path/file.pdf")[10:16]

安装 pdftk(如果您还没有)。假设它在你的路径上并且 myfile.pdf 在当前目录中 运行 这个来自 R:

system("pdftk myfile.pdf cat 10-16 output myfile_10to16.pdf")

作为 的附件,还可以使用包 staplr,它是程序 pdftk:

的 R 包装器
library('staplr')

staplr::select_pages(
    selpages = 10:16,
    input_filepath = 'file_path',
    output_filepath = 'saving_path')

根据我的经验,普通 pdftk 工作得更快。但是,如果您需要做一些复杂的事情并且您对 R 语法比 bash 语法更熟悉,那么使用 staplr 包将节省编码时间。