Railsアプリケーションでインデックスを作成したいドキュメントがたくさんあります。ある種のrakeタスクを使用して、ディレクトリ階層を組み合わせてファイルを探し、それらのファイルからメタデータをキャプチャしてRailsでインデックスを作成したいと思います。
Rubyでこれを行う方法がよくわかりません。PDFファイルからメタデータを抽出できるpdftkというユーティリティを見つけました(インデックスを作成しているものの多くはPDFです)が、そのデータの個々の部分をキャプチャする方法がわかりませんか?
たとえば、ModDate
または以下を取得BookmarkTitle
しBookmarkPageNumber
ます。
具体的には、ファイル階層をトラバースし、pdftk $filename dump_data
見つけた.pdfごとにコマンドを実行してから、その出力の重要な部分をRailsモデルにキャプチャします。
pdftkからの出力:
$ pdftk BoringDocument883c2.pdf dump_data
InfoKey: Creator
InfoValue: Adobe Acrobat 9.3.4
InfoKey: Producer
InfoValue: Adobe Acrobat 9.34 Paper Capture Plug-in
InfoKey: ModDate
InfoValue: D:20110312194536-04'00'
InfoKey: CreationDate
InfoValue: D:20110214174733-05'00'
PdfID0: 2f28dcb8474c6849ae8628bc4157df43
PdfID1: 3e13c82c73a9f44bad90eeed137e7a1a
NumberOfPages: 126
BookmarkTitle: Alternative Maintenance Techniques
BookmarkLevel: 1
BookmarkPageNumber: 3
BookmarkTitle: CONTENTS
BookmarkLevel: 1
BookmarkPageNumber: 4
BookmarkTitle: EXHIBITS
BookmarkLevel: 1
BookmarkPageNumber: 6
BookmarkTitle: I - INTRODUCTION
BookmarkLevel: 1
BookmarkPageNumber: 8
BookmarkTitle: II - EXECUTIVE SUMMARY
BookmarkLevel: 1
BookmarkPageNumber: 13
BookmarkTitle: III - REMOTE DIAGNOSTICS - A STATUS REPORT
BookmarkLevel: 1
BookmarkPageNumber: 30
BookmarkTitle: IV - ALTERNATIVE TECHNIQUES
BookmarkLevel: 1
BookmarkPageNumber: 55
BookmarkTitle: V - COMPANYA - A SERVICE PHILOSOPHY
BookmarkLevel: 1
BookmarkPageNumber: 66
BookmarkTitle: VI - COMPANYB - REDUNDANT HARDWARE ARCHITECTURE
BookmarkLevel: 1
BookmarkPageNumber: 77
...shortened for brevity...
PageLabelNewIndex: 1
PageLabelStart: 1
PageLabelPrefix: F-E12_0001.jpg
PageLabelNumStyle: NoNumber
PageLabelNewIndex: 2
PageLabelStart: 1
PageLabelPrefix: F-E12_0002.jpg
PageLabelNumStyle: NoNumber
PageLabelNewIndex: 3
PageLabelStart: 1
PageLabelPrefix: F-E12_0003.jpg
PageLabelNumStyle: NoNumber
...
編集:私は最近、有望に見え、シェルでトリガーする必要がなくなる可能性のあるpdfリーダーpdftk
の宝石を見つけましたか?!?