问题描述
我一直在尝试获取位于 sftp 服务器上的 pdf 文件并阅读所有页面。到目前为止,我只能将一页保存到可变元素中。如果可以改进此代码以实现这一目标,您能否提出建议? 这样做的主要目的不是为了减少 R/W
# SFTP
protocol <- "sftp"
server <- "172.16.19.9"
port = "63636"
userpwd <- "aaa:bbb"
filename <- "document1.pdf"
url <- paste0(protocol,"://",server,":",port,"/",filename)
> url
[1] "sftp://172.16.19.9:63636/document1.pdf"
data1 <- getBinaryURL (url = url,userpwd=userpwd)
read_raw_pdf <- function(data){
con <- rawConnection(data)
on.exit(close(con))
magick::image_read(pdftools::pdf_render_page(con,dpi = 250))
}
当我运行函数 read_raw_pdf
时,它可以工作,但它只会获取 pdf 文档的第一页
image1 = read_raw_pdf(data1)
image_info(image1)
# A tibble: 1 x 7
format width height colorspace matte filesize density
<chr> <int> <int> <chr> <lgl> <int> <chr>
1 PNG 2125 2750 sRGB TRUE 0 72x72
另一方面,此函数可以将所有页面放入一个变量中,但我无法让它从外部 sftp 服务器获取文件,因为它采用的是路径,而不是二进制数据
image2 = image_read_pdf ("document1.pdf",density=250)
image_info(image2)
# A tibble: 3 x 7
format width height colorspace matte filesize density
<chr> <int> <int> <chr> <lgl> <int> <chr>
1 PNG 2125 2750 sRGB TRUE 0 250x250
2 PNG 2125 2750 sRGB TRUE 0 250x250
3 PNG 2125 2750 sRGB TRUE 0 250x250
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)