用R批量读取Pdf的表格
-
这个Code送给实习生小朋友。前提是pdf都不是扫描的格式,如果是扫描的图片pdf还要加OCR这个步骤。
首先主要要用的包是tabulizer,它的安装用下面的代码:
library(remotes) remotes::install_github(c("ropensci/tabulizerjars", "ropensci/tabulizer"), INSTALL_opts = "--no-multiarch", dependencies = c("Depends", "Imports"))
library(writexl) library(tabulizer) library(tabulizerjars) #所有pdf都放到这个path下面 path = "your_path/" filenames <- list.files(path,pattern="*.pdf") #搞出所有pdf的路径 filenames_withpath <- unlist(lapply(filenames, function(x) paste0(path,x))) # 提取Table的代码,把pdf里面所有的table写入excel里面 ExtractTable = function(pdf.file,pdf.names){ pdf.dat <- extract_tables(pdf.file) for(i in 1:length(pdf.dat)){ pdf.tbl <- data.frame(pdf.dat[[i]][-1, ]) write_xlsx(pdf.tbl,paste0(pdf.names,"_Table_",i,".xlsx")) } } # 提取所有pdf文件里面的table for(j in 1:length(filenames_withpath)){ ExtractTable(filenames_withpath[j],filenames[j]) }
-
@Mengkelyu 在 用R批量读取Pdf的表格 中说:
我倒在了第一步,始终装不上tabulizer
-
@Howie-Jie
jh老师记得提供R版本,报错代码和报错信息给我