根据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 中包含什么类型的数据以及您试图从中提取什么。所以我概述了两种方法。
如果您在 pdf 中有表格,您应该能够使用以下方法从所述页面中提取数据:
tab <- tabulizer::extract_tables(file = "path/file.pdf", pages = 10:16)
如果你只想要文本,你应该使用 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
包将节省编码时间。
我有一个包含多页的 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 中包含什么类型的数据以及您试图从中提取什么。所以我概述了两种方法。
如果您在 pdf 中有表格,您应该能够使用以下方法从所述页面中提取数据:
tab <- tabulizer::extract_tables(file = "path/file.pdf", pages = 10:16)
如果你只想要文本,你应该使用
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
:
library('staplr')
staplr::select_pages(
selpages = 10:16,
input_filepath = 'file_path',
output_filepath = 'saving_path')
根据我的经验,普通 pdftk
工作得更快。但是,如果您需要做一些复杂的事情并且您对 R 语法比 bash 语法更熟悉,那么使用 staplr
包将节省编码时间。