2012-02-14 44 views
8

我想从互联网下载PDF文件并将其保存在本地HD中。下载后,pdf输出文件有很多空白页面。我能做些什么来解决它?使用R下载pdf文件的问题

实施例:

require(XML) 
url <- ('http://cran.r-project.org/doc/manuals/R-intro.pdf') 
download.file(url, 'introductionToR.pdf') 

预先感谢。

+2

我复制并粘贴您的代码,并获得了109页文件,因为它应该是下载的PDF导出表作为data.frame。也许你的PDF查看器存在问题? – vaettchen 2012-02-14 16:23:11

+0

适合我。 (R 2.14.1,Linux - 你可以发布'sessionInfo()'的结果吗?它看起来可能是一个查看器或其他操作系统问题,因为这是非常基本的功能......)顺便说一句, '不需要'XML'包 - 'download.file'是基地R. – 2012-02-14 16:31:00

+0

PS的一部分。我猜你正在使用Windows:'?download.file'说:“编写用于下载二进制文件的代码必须使用'mode =”wb“',但文本传输引发的问题只能在Windows上看到。 “ – 2012-02-14 16:33:28

回答

23

试图用这样的WB-模式:

download.file(url, 'introductionToR.pdf', mode="wb")

对我来说,它的工作方式。

+1

就是这样! mode ='wb'解决了这个问题。谢谢! – Diogo 2012-02-14 20:23:16

+1

这个答案为我节省了大量的工作! (在win OS上) – userJT 2015-03-12 09:31:18

+1

要添加一个解释,'mode =“wb”'告诉函数将文件视为二进制而不是文本。 – Matt 2017-06-16 17:10:51

-1

您可以使用tabulizer包

https://ropensci.org/tutorials/tabulizer_tutorial.html

install.packages("devtools") 
# on 64-bit Windows 
ghit::install_github(c("ropenscilabs/tabulizerjars", "ropenscilabs/tabulizer"), INSTALL_opts = "--no-multiarch") 
# elsewhere 
ghit::install_github(c("ropenscilabs/tabulizerjars", "ropenscilabs/tabulizer")) 

library(tabulizer) 

f2 <- "https://github.com/leeper/tabulizer/raw/master/inst/examples/data.pdf" 
extract_tables(f2, pages = 1, method = "data.frame")