【问题标题】:use url pdf instead of file pdf in R在R中使用url pdf而不是文件pdf
【发布时间】:2015-03-16 12:27:49
【问题描述】:

我正在使用以下行从R 中的 PDF 导入文本

uri <- sprintf("name.pdf", system.file(file.path("doc", "tm.pdf"),
                package = "tm"))

但是,我想在第一个参数中直接使用获取 PDF 的 URL,而不是硬盘中的 PDF 文件。

【问题讨论】:

  • 您可以使用download.file在本地下载文件
  • 这么简单,谢谢!我一直在改变论点,想不出明显的方法!
  • 顺便说一句,您发布的代码与问题无关,它只是从 tm 包示例中复制的一行。检查tm 包的文档我看到readPDF 接受一个URL - 你已经可以做你所要求的了。 您有具体问题吗?
  • 还有一种更简单的方法。将uri 传递给readPDF。您发布的代码从本地文件创建 URI,您不需要
  • 我设法使用download.file 命令,但不是你说的那样。能否请您使用readPDF 中的 URL 举例?

标签: r


【解决方案1】:

我怀疑问题在于 readPDF 文档中的示例使用此行来创建本地文件 URL:

uri <- sprintf("file://%s", system.file(file.path("doc", "tm.pdf"), package = "tm"))

您不需要为 ftphttp url 执行此操作,只需按原样传递 URL。 readPDF仅接受 URL,因此即使是本地文件路径也必须转换为 URI。

你可以简单地写:

uri <- "http://cran.r-project.org/web/packages/tm/tm.pdf"

要获取tm 包的文档,然后继续阅读readPDF

uri <- "http://cran.r-project.org/web/packages/tm/tm.pdf"
pdf <- readPDF(control = list(text = "-layout"))(elem = list(uri = uri),
                                               language = "en",
                                               id = "id1")

尽管readPDF 需要一个 URL,但至少在 Windows 中,您只能将它与本地文件一起使用。 readPDF 本质上充当外部命令的包装器,因此 URI 按原样 传递给 pdftotext(对于 xpdf)或您指定的引擎使用的任何命令。除非 that 命令理解 URL,否则它将失败并显示警告。

唯一真正的选择是使用download.file 在本地下载文件,然后使用readPDF 读取它:

uri <- "http://cran.r-project.org/web/packages/tm/tm.pdf"
download.file(uri,"tm.pdf",method="internal",mode="wb")
pdf <- readPDF(control = list(text = "-layout"))(elem = list(uri = "tm.pdf"),
                                               language = "en",
                                               id = "id1")
content(pdf)[1:13]

我可以使用相对文件路径,因为uri 参数按原样传递,它根本不被视为 URI。我也能通过"h:\\documents\\tm.pdf""h:/documents/tm.pdf"

【讨论】:

  • 对不起,我还是有点困惑。这样做之后,我怎样才能看到 PDF 的内容?基本上我想从 PDF 中获取所有文本。
  • 这在readPDF 文档中显示,在与其余代码相同的示例中。读取文件后,您可以使用content(pdf)[1:13] 读取文件的特定部分
  • 我得到NAs.. 问题是当我运行您粘贴的代码时,我收到警告,所以我认为没有存储任何内容。有什么想法吗?
  • 如果我把我的文件名放在我的本地目录中的uri 中,它可以工作,如果我使用链接它不会.. 我找不到原因
  • 毕竟,我认为你不能使用 URI,至少在 Windows 中是这样。 readPDF 将 uri 原样传递给外部命令。 xpdf 至少只适用于本地文件,所以这会导致错误。我没有找到任何明确使用 URL 的示例,只有提示、引用和回退到...直接调用 pdftotext.exe
猜你喜欢
  • 2012-08-19
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 2016-07-23
相关资源
最近更新 更多