我正试图从以下链接下载一个文件并自动读取其信息:
http://www.leyes.congreso.gob.pe/Documentos/2016_2021/Proyectos_de_Ley_y_de_Resoluciones_Legislativas/PL0361420181108.pdf
问题是,当我试图阅读pdf上的信息时,我会出错。它似乎时断时续地发生,我看不出有什么好的理由。该错误似乎仅限于Linux。
library(pdftools)
link = "http://www.leyes.congreso.gob.pe/Documentos/2016_2021/Proyectos_de_Ley_y_de_Resoluciones_Legislativas/PL0361420181108.pdf"
download.file(link, "somefile.pdf")
pdf_info("somefile.pdf")
Error in poppler_pdf_info(loadfile(pdf), opw, upw) :
Embedded NUL in string.
我还试过什么:
- 尝试使用mode="wb"下载
- 尝试使用httr使用write_disk方法下载
- 尝试在windows上手动下载,它有效!:(
我怀疑这与我下载文件的方式有关。但是,我不知道我应该尝试什么替代方案。
所以,这根本不起作用。该文档中除了分页符字符外没有其他文本。都是图像。
如果rJava
在您的系统上运行,并且您可以并且可以放心地安装来自不受信任来源(如GitHub(的包,那么您可以安装pdfbox
(注意这里的安全警告,因为我还没有更新pdfbox
JAR,但唯一的漏洞是潜在的进程拒绝服务(来验证这一点,因为它比pdftools
更脆弱。
当我使用httr::write_disk()
或curl::curl_download()
方法获取PDF(在美国也需要一段时间(时,我做了:
pdfbox::extract_text("~/Downloads/ill-bet-this-is-all-images.pdf")
## # A tibble: 14 x 2
## page text
## <int> <chr>
## 1 1 "n"
## 2 2 "n"
## 3 3 "n"
## 4 4 "n"
## 5 5 "n"
## 6 6 "n"
## 7 7 "n"
## 8 8 "n"
## 9 9 "n"
## 10 10 "n"
## 11 11 "n"
## 12 12 "n"
## 13 13 "n"
## 14 14 "n"
Boom:没有文本。
您需要使用一些rOpenSci图像到文本OCR工具来从文档中获得任何有意义的东西。