10

我们好奇的是,有没有办法从 R 中读取 PDF 元数据——例如下面显示的信息?

[r] pdf metadata通过从当前问题库中进行搜索,我对此一无所知。非常欢迎任何指点!

在此处输入图像描述

4

1 回答 1

5

我想不出一种纯 R 方式来做到这一点,但您可能可以安装您最喜欢的 PDF 命令行工具(例如,PDF 工具包、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)

我会研究还有哪些其他选项可以指定提取哪些元数据,看看是否有一种方便的方法可以将此信息解析为对您更有用的形式。

于 2013-11-02T11:50:01.050 回答