You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中正确提取PDF文件全部表格并写入CSV,解决输出不完整问题

现有代码的问题点

  • 你定义文件路径的行末尾多了冗余右括号,会先引发语法报错。
  • extract_tables()使用默认参数,对复杂年报表格的识别精度不足,容易截断边界单元格、漏识别跨页内容。
  • 写入时使用out[i]取列表子集而非完整矩阵/数据框,且逐页append、关闭引号的设置,会导致单元格含逗号时错位,看起来像内容缺失。

解决方案

第一步:优化表格识别参数

把提取表格的代码替换为以下内容,适配年报类带边框的PDF表格:

library(tabulizer)
# 删掉原路径末尾多余的右括号
location <- 'http://keic.mica-pps.net/wwwisis/ET_Annual_Reports/Religare_Enterprises_Ltd/RELIGARE-2017-2018.pdf'

out <- extract_tables(
  location,
  method = "lattice", # 有明确边框的表格用该算法,无框表格可替换为"stream"
  output = "data.frame", # 直接输出结构化数据框,避免列表结构出错
  pages = NULL, # 识别全页内容,避免漏页
  guess = TRUE, # 自动定位表格位置
  encoding = "UTF-8" # 避免特殊字符乱码丢失
)

第二步:修正写入逻辑,避免内容错位

不要逐页追加写入,先合并所有提取到的表格再统一输出:

# 合并所有表格
full_table <- do.call(rbind, out)
# 统一写入CSV
write.csv(full_table, file = "Output.csv", row.names = FALSE, na = "")

可选优化方案

如果调整参数后仍有内容缺失,可手动指定area参数框选每页表格的坐标范围,排除页脚、页眉等无关内容的干扰;也可以替换为Python的camelot库处理复杂PDF表格,识别精度更高。


内容的提问来源于stack exchange,提问作者Sri Priya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 12:36:05