我使用以下行从R
uri <- sprintf("name.pdf", system.file(file.path("doc", "tm.pdf"),
package = "tm"))
但是,我想直接使用我在第一个参数中获取PDF的URL,而不是我硬盘中的PDF文件。
答案 0 :(得分:2)
我怀疑问题是readPDF文档中的示例使用此行创建本地文件URL:
uri <- sprintf("file://%s", system.file(file.path("doc", "tm.pdf"), package = "tm"))
您无需为 ftp
或http
网址执行此操作,只需按原样传递网址即可。 readPDF
只接受的网址,因此即使本地文件路径也必须转换为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将 as-is 传递给pdftotext
(对于xpdf)或您指定的引擎使用的任何命令。除非 命令理解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"
。