R语言奇淫巧技之pdftools包

2020-09-30 10:26:51 浏览数 (1)

我们前面讲解过了使用R语言做爬虫,处理图片,写网页应用等等,都在生信基石之R语言,B站的10个小时教学视频!

最近逛r-bloggers这个论坛发现pdftools包这个神器,原文链接是:https://www.r-bloggers.com/2019/04/join-split-and-compress-pdf-files-with-pdftools/ 也是值得推荐一下。

首先是拆分PDF文件

比如我们想打印文献,十几个PDF文件,但是每个PDF文件末尾都是参考文献等等并不是很想浪费金钱去打印它,就可以删除指定的页面在每个pdf文件里面。

就可以使用pdftools包的pdf_subset()函数,示例代码如下:

代码语言:javascript复制
# Load pdftools
library(pdftools)

# extract some pages
pdf_subset('https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf',
  pages = 1:3, output = "subset.pdf")

# Should say 3
pdf_length("subset.pdf")

当然了,如果你有客户端的PDF编辑器就是可视化很方便,不过它不能批量化。代码的魅力就在于批量和自动化,嘻嘻

合并PDF文件

而我们想把十几个PDF文件的文献发给商家,就可以先合并成为一个pdf文件,发送起来也是方便你我他。

就可以使用pdftools包的pdf_combine()函数,示例代码如下:

代码语言:javascript复制
# Generate another pdf
pdf("test.pdf")
plot(mtcars)
dev.off()

# Combine them with the other one
pdf_combine(c("test.pdf", "subset.pdf"), output = "joined.pdf")

# Should say 4
pdf_length("joined.pdf")

同样的道理,代码的魅力就在于批量和自动化,嘻嘻。

如果你要把多个图片写入到同一个pdf里面,每个图片是一个页面

参考:https://stackoverflow.com/questions/1395410/how-to-print-r-graphics-to-multiple-pages-of-a-pdf-and-multiple-pdfs 示例代码如下:

代码语言:javascript复制
pdf("myOut.pdf")
for (i in 1:10){
  plot(rnorm(10))
}
dev.off()

0 人点赞