2013-10-26 14 views
8

Naszą ciekawością jest sposób na odczytanie metadanych PDF - takich jak przedstawione poniżej informacje - z R?Jak odczytać metadane PDF z R

Nie mogłem nic na ten temat, wyszukując od [r] pdf metadata w bieżącej bazie pytań. Wszelkie wskazówki są bardzo mile widziane!

enter image description here

+4

Spójrz na pakiet tm 'readPDF'. –

+0

Dzięki - wygląda świetnie, ale nie jest to oczywiste w użyciu. Opowiem, kiedy uda mi się napisać kod wyodrębniający np. Producenta treści. –

+1

'file.info()' dostaniesz niektóre z tych informacji – GSee

Odpowiedz

4

Nie mogę myśleć o czystym R sposób to zrobić, ale prawdopodobnie można zainstalować swoje ulubione narzędzie PDF wiersza polecenia (na przykład, the PDF toolkit, PDFtk i używać, aby uzyskać co najmniej niektóre z dane szukasz.

Poniżej znajduje się prosty przykład za pomocą pdftk. zakłada on, że pdftk dostępny jest na swojej drodze.

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) 

będę patrzeć na to, co inne opcje są do określenia w metadane kapelusza zostaną wyodrębnione i sprawdź, czy istnieje wygodny sposób na przeanalizowanie tych informacji w formie, która jest bardziej przydatna dla Ciebie.