我有一个pdf,大约50页扫描表。我需要最终把它刮到R中,这样我就可以清理数据并将其导出为.csv。我有使用tabulizer抓取可读的pdfs的经验,但我以前从未真正使用过扫描pdfs,tabulizer无法读取它们。
环顾在线,我所能得到的最远就是将扫描的pdf作为一个字符对象读取到R中,但这会使格式发生很大的变化,因此表中的列都错对齐了,并出现了无序。即使它的格式仍然很好,我也不知道如何将字符对象转换成最终的df。
有没有一种方法可以将扫描的pdf转换成可读的pdf,这样我就可以在tabulizer中抓取它了?还是另一种将扫描的pdfs抓取到表中的方法?
发布于 2022-11-16 22:49:09
tesseract::ocr函数可以读取PDF文件并将它们转换为文本。然后,您可以将其作为文档处理,并生成一个(可能非常难看!)PDF文件:
library(tesseract)
eng <- tesseract("eng")
yaml <- '
---
output: pdf_document
---'
text <- tesseract::ocr("scanned.pdf", engine=eng)
lines <- unlist(strsplit(text, "\n"))
lines2 <- c(yaml, lines2)
writeLines(lines2, "ocr.Rmd")然后在那份文件上运行run。您会得到很多OCR错误,所以编辑.Rmd文件来修复它们,然后再做一次(然后再次.)。
https://stackoverflow.com/questions/74466819
复制相似问题