是否可以从 PDF 中提取列标题下的信息?

Is it possible to extract information under column headings from a PDF?

我想从一堆 PDF 中提取某些数字信息。下面显示了一个示例,其中数字信息位于相应的标题下。

上图(pdftools::pdf_text()读入)对应的字符串为:

mystr <- '                                      Natural                                                     Dry\n                                     Metric Tons    @         Moisture         or             Metric Tons\n          B.L. WEIGHT:                78,944                   1.70%                          77,601.952\n'

有很多空格和换行符。是否可以提取这些标题下的信息?

我想要的最终结果是这样的:

myresult <- tibble(
  `Natural Metric Tons` = 78944,
  Moisture = 1.7,
  `Dry Metric Tons` = 77601.952
)

如果你使用 pdftools::pdf_data() 你会得到一个小标题列表,每页一个包含文本及其 x 和 y 坐标(以及其他数据)。垂直对齐的文本将具有相同的 y 坐标和增加的 x 坐标。因此,您可以按如下方式处理每个小标题:

tibble %>%
   group_by(y) %>%
   arrange(x) %>%
   filter(lag(text) == "your search term")

然后您可以使用 for 循环或 purrr::map() 来应用整个列表。

我从你的样本中看到,数字是集中的,上面的代码假定条目左对齐,所以你可能需要做比 group_by(y) 更复杂的争论。

对于任何格式问题,我很抱歉,我在移动设备上。