それも可能ですか!?!
データベースにインポートする必要があるレガシーレポートがたくさんあります。ただし、それらはすべてPDF形式です。 PDFを読むことができるR
パッケージはありますか?それともコマンドラインツールに任せるべきですか?
レポートはExcelで作成されてからPDF化されたため、規則的な構造ですが、多くの空白の「セル」があります。
データを抽出することを望んでいる可能性のある他の人への警告:PDFはフォーマットではなく、コンテナです。元のドキュメントにテキストのビットマップ画像または場合によっては実際のテキストが含まれていない場合私が想像できるよりもthingsいものでさえ、OCR以外はあなたを助けることができません。
その上、私の悲しい経験では、PDF docsがすべて同じ動作をするアプリであるという保証はありません。そのため、テーブル内のデータが望ましい順序で読み出される場合とされない場合があります(ドキュメントの作成方法の結果として)。注意してください。
おそらく、数人の大学院生にデータを転記してもらう方が良いでしょう。安いです:-)
だから...これはかなり複雑なテーブルでも私を近づけます。
bmi pdf からサンプルPDFをダウンロードします
library(tm)
pdf <- readPDF(PdftotextOptions = "-layout")
dat <- pdf(elem = list(uri='bmi_tbl.pdf'), language='en', id='id1')
dat <- gsub(' +', ',', dat)
out <- read.csv(textConnection(dat), header=FALSE)
PDFからテキストを取得するための現在のパッケージdu jourは pdftools
(上記のRpopplerの後継、 )、Linux、Windows、およびOSXで正常に動作します。
install.packages("pdftools")
library(pdftools)
download.file("http://arxiv.org/pdf/1403.2805.pdf", "1403.2805.pdf", mode = "wb")
txt <- pdf_text("1403.2805.pdf")
# first page text
cat(txt[1])
# second page text
cat(txt[2])
新しい(2015-07)Rpoppler
パッケージを使用することもできます(現在)。
Rpoppler::PDF_text(file)
3つの関数が含まれています(実際には4つですが、1つはPDFオブジェクト)へのptrを取得するだけです):
PDF_fonts
PDFフォント情報PDF_info
PDFドキュメント情報PDF_text
PDFテキスト抽出(新しい検索者がパッケージを見つけるのに役立つ回答として投稿します)。
per zx8754 ...作業ディレクトリにあるpdftotext.exeを使用してWin7で次のように動作します。
library(tm)
uri = 'bmi_tbl.pdf'
pdf = readPDF(control = list(text = "-layout"))(elem = list(uri = uri),
language = "en", id = "id1")