微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从位于 sftp 服务器中的 pdf 文件中读取所有页面

如何解决如何从位于 sftp 服务器中的 pdf 文件中读取所有页面

我一直在尝试获取位于 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 举报,一经查实,本站将立刻删除。