最近有同事找我帮忙解决一个加密pdf文件打印问题,这个pdf文件加密后只能看没法编辑,也没法打印。我的解决思路是通过R将这个加密pdf文件生成一个新的没有加密的pdf文件,目前CRAN上处理pdf文件的R包主要是pdftools和qpdf。下面给出具体R代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 加载相关R包
library(pdftools)
library(qpdf)

# 定义待处理文件
pdf_file = "path/to/input.pdf"  # 告诉R你的文件在哪里?

# 确定文件的页数
n = pdf_length(pdf_file)

# 生成新的不加密文件
pdf_subset(pdf_file, pages = 1:n, output = "path/to/output.pdf")

经初步测试,同事那个文件通过qpdf包处理后新生成的文件已经可以打印了,而且新生成的文件在内容上看上去没有任何信息损失。这里拿来与诸君分享。