pdftools:将NUL嵌入字符串中

时间:2018-11-14 04:16:46

标签: r poppler

我正尝试从以下链接下载文件并自动读取其信息:

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”尝试下载
  • 尝试使用write_disk方法使用httr下载
  • 尝试在Windows上手动下载,并且可以使用! :(

我怀疑这与我下载文件的方式有关。但是,我不知道我应该尝试哪些替代方法。

1 个答案:

答案 0 :(得分:2)

所以,这根本行不通。除分页符外,该文档中没有其他文本。全部都是图片。

如果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"

景气:没有文字。

您需要使用某些rOpenSci图像到文本OCR工具从该文档中获取有意义的内容。