50

それも可能ですか!?!

データベースにインポートする必要があるレガシー レポートが多数あります。ただし、それらはすべてpdf形式です。RPDFを読めるパッケージはありますか? それともコマンドラインツールに任せるべきでしょうか?

レポートは Excel で作成されてから pdf 化されているため、規則的な構造になっていますが、多くの空白の「セル」があります。

4

5 に答える 5

31

だから...これはかなり複雑なテーブルでも私を近づけます。

bmipdfからサンプル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)
于 2012-02-08T00:43:49.220 に答える
22

データの抽出を望んでいる可能性のある他の人への単なる警告:PDFはコンテナであり、フォーマットではありません。テキストのビットマップ画像や、想像以上に醜いものとは対照的に、元のドキュメントに実際のテキストが含まれていない場合は、OCR以外の何物も役に立ちません。

その上、私の悲しい経験では、PDFドキュメントを作成するアプリがすべて同じように動作するという保証はありません。そのため、テーブル内のデータが希望の順序で読み取られる場合とされない場合があります(ドキュメントの方法の結果として)構築された)。注意してください。

おそらく、2人の大学院生にデータを転記させる方がよいでしょう。彼らは安いです:-)

于 2012-02-08T02:28:12.877 に答える
6

(現在) 新しい (2015-07) パッケージを使用することもできますRpoppler:

Rpoppler::PDF_text(file)

これには 3 つの関数が含まれています (実際には 4 つですが、そのうちの 1 つは PDF オブジェクトへの ptr を取得するだけです)。

  • PDF_fonts PDFフォント情報
  • PDF_info PDF文書情報
  • PDF_text PDF テキスト抽出

(新しい検索者がパッケージを見つけやすくするための回答として投稿します)。

于 2015-10-20T11:26:15.113 に答える
4

per zx8754 ... 以下は、Win7 で作業ディレクトリに pdftotext.exe を使用して動作します。

library(tm)
uri = 'bmi_tbl.pdf'
pdf = readPDF(control = list(text = "-layout"))(elem = list(uri = uri),
                                                language = "en", id = "id1")   
于 2015-06-26T13:18:26.783 に答える