如何从R读取PDF元数据

时间:2013-10-26 11:49:51

标签: r pdf metadata

我们有好奇心,有没有办法从R?

阅读PDF元数据 - 例如下面显示的信息?

通过在当前问题库中搜索[r] pdf metadata,我无能为力。任何指针都非常欢迎!

enter image description here

1 个答案:

答案 0 :(得分:5)

我无法想到一种纯粹的R方式来做这件事,但你可以安装自己喜欢的PDF命令行工具(例如,the PDF toolkit, PDFtk并使用它来获取至少一些数据你正在寻找。

以下是使用PDFtk的基本示例。它假定您的路径中可以访问pdftk

x <- getwd() ## I'll run this example in a tempdir to keep things clean
setwd(tempdir())
list.files(pattern="*.txt$|*.pdf$")
# character(0)

pdf(file = "SomeOutputFile.pdf")
plot(rnorm(100))
dev.off()

system("pdftk SomeOutputFile.pdf data_dump output SomeOutputFile.txt")
list.files(pattern="*.txt$|*.pdf$")
# [1] "SomeOutputFile.pdf" "SomeOutputFile.txt"

readLines("SomeOutputFile.txt")
#  [1] "InfoBegin"                    "InfoKey: Creator"            
#  [3] "InfoValue: R"                 "InfoBegin"                   
#  [5] "InfoKey: Title"               "InfoValue: R Graphics Output"
#  [7] "InfoBegin"                    "InfoKey: Producer"           
#  [9] "InfoValue: R 3.0.1"           "InfoBegin"                   
# [11] "InfoKey: ModDate"             "InfoValue: D:20131102170720" 
# [13] "InfoBegin"                    "InfoKey: CreationDate"       
# [15] "InfoValue: D:20131102170720"  "NumberOfPages: 1"            
# [17] "PageMediaBegin"               "PageMediaNumber: 1"          
# [19] "PageMediaRotation: 0"         "PageMediaRect: 0 0 504 504"  
# [21] "PageMediaDimensions: 504 504"

setwd(x)

我会研究其他选项,以指定提取的元数据,并查看是否有一种方便的方法将此信息解析为对您更有用的表单。