使用R语言合并压缩PDF

市面上的PDF合并和压缩挺贵的,虽然有很多免费额度,但是文件一旦大到定程度,动不动就要开会员,其实要是懂点R语言或者其他语言,其实是完全不需要花费任何money的,而且速度可能比线上的压缩合并更快

R语言处理PDF软件包精选 - 知乎 (zhihu.com)
这篇文章很好介绍了目前PDF操作有哪些R包::
R中可以对PDF做很多操作,如关键词提取、页数统计、多PDF拆分与合并等。这里精选相关R包,以便于后续取用。

CRAN - Package pdfsearch:可以找到关键字在PDF文件中的所在行,以及上下的行的文本。如果要对PDF文件做文本分析,是一个很好的工具。

CRAN - Package staplr:对PDF文件进行合并、拆分、删除、旋转、重命名等操作。

CRAN - Package qpdf:对PDF文件进行拆分、合并和压缩。

CRAN - Package pdftools:可以对PDF中的数据进行提取,同时可以高效转格式(如JPG等图片格式)。

这里我主要是用 qpdf
使用也就是几句代码而已

getwd()
setwd("文件位置的绝对路径")
sort(dir()) #查看这个文件夹下有什么文件,主要有以下文件
#[1] "1-1.pdf" "1-2.pdf" "1-3.pdf" "1-4.pdf" "1-5.pdf"
# [6] "1-6.pdf" "1-7.pdf" "1-8.pdf" "1-9.pdf" "10.pdf" 
#[11] "11.pdf"  "12.pdf"  "13.pdf"  "14.pdf"  "15.pdf" 
#[16] "16.pdf"  "17.pdf"  "18.pdf"  "19.pdf"  "20.pdf"

于是就把这个文件夹下面所有的pdf合并了(普通电脑不知道要多久,300M的文件反正服务器一秒搞完)

library(qpdf) 
pdf_combine(sort(dir()),
            output = "all_new.pdf")

压缩PDF

pdf_compress("all_new.pdf",linearize = T) 

其实它还有拆分PDF等功能

Details

Currently the package provides the following wrappers:

  • pdf_length: show the number of pages in a pdf

  • pdf_split: split a single pdf into separate files, one for each page

  • pdf_subset: create a new pdf with a subset of the input pages

  • pdf_combine: join several pdf files into one

  • pdf_compress: compress or linearize a pdf file

但是要是PDF文件合并之后有大有小怎么办?这个R包就帮不上什么忙,但是研究了一下发现有些小技巧:
用edge浏览器打开PDF,然后选择打印,选择Microsoft Print to PDF,默认选择A4,然后打印为PDF就OK了,东西就非常整齐,而且大小也会小很多。

你可能感兴趣的:(使用R语言合并压缩PDF)