用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版本,报错代码和报错信息给我


登录后回复