質問

Ruby (Linux および OSX 上) で大きな PDF ファイルを読み取り/解析するための高速かつ信頼性の高い方法を探しています。

今まで私はかなり古くてシンプルなものを見つけました PDF ツールキット ( pdfからテキストへ-ラッパー)と PDFリーダー, 、ほとんどのファイルを読み取ることができませんでした。ただし、2 つのライブラリは私が探していた機能を正確に提供します。

私の質問:何か見逃してしまったのでしょうか?私の問題を解決するために、より適した (より速く、より信頼性の高い) ツールはありますか?

役に立ちましたか?

解決

見つかるかもしれません ドキュメント分割 役に立つ:

Docsplit は、ドキュメントをコンポーネント部分に分割するためのコマンドライン ユーティリティおよび Ruby ライブラリです。検索可能な UTF-8 プレーン テキスト、任意の形式のページ画像またはサムネイル、PDF、単一ページ、およびドキュメントのメタデータ (タイトル、作成者、ページ数など)

他のヒント

さまざまな方法を試した後、私が使用しているのは、 PDF ツールキット 今。かなり古いものですが、高速で安定していて信頼性があります。さらに、それは実際に新しいものである必要はありません。 xpdf コマンドライン ユーティリティ.

JRuby と ApachePDFBox などの Java PDF ライブラリ パーサーを使用できます (https://www.ohloh.net/p/pdfbox)。こちらも参照 http://java-source.net/open-source/pdf-libraries.

以下にいくつかのオプションがあります。

http://en.wikipedia.org/wiki/List_of_PDF_software

そのリンクから、sourceforge を検索すると、次のような、必要なことを実行できるコマンド ライン ユーティリティがいくつかあります。 http://pdftohtml.sourceforge.net/

要件と PDF の外観に応じて、Google Docs API の使用 (PDF をアップロードしてからテキストとしてダウンロード) を検討するか、次のようなことを試すこともできます。 ゴクリ. 。私は過去に gocr を使って画像テキストを解析することができてとても幸運でしたが、それを行うにはシェルにバウンスするだけで済みました。 gocr -i whatever.pdf (PDFでも使えると思います)。

これらすべての欠点は、純粋な Ruby 実装ではないことですが、優れた (無料の) OCR プロジェクトの多くはそのように行われているようです。

PDF ファイルからテキスト コンテンツを取得するだけの場合は、sourceforge の pdftohtml が効率的です。画像を扱うのには適していません。

ご覧になりましたか? PDFを結合する 図書館?

これは純粋な Ruby ソリューションであり、ページの抽出、ある PDF ページを別の PDF ページにオーバーレイ、ページ番号付け、基本的なテキストや表の書き込みなどの PDF 操作を可能にします。

以下は、既存の PDF ファイルにロゴを追加する例です。この例では、PDF ファイルを読み取り、スタンプとして使用する 1 ページを抽出し、別の PDF ファイルにスタンプを付けます。

require 'combine_pdf'
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf = CombinePDF.load "content_file.pdf"
pdf.pages.each {|page| page << company_logo}
pdf.save "content_with_logo.pdf"

テキストやページ番号をスタンプしたり、以下を使用したりすることもできます。

require 'combine_pdf'

pdf = CombinePDF.load "content_file.pdf"

pdf.number_pages #adds page numbers. you can add formatting and placement options.

pdf.pages.each {|page| page.textbox "One Way To Stamp"}

#you can a shortcut method to stamp pages
pdf.stamp_pages "Another way to stamp"

#you can use the shortcut method for both text and PDF stamps
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf.stamp_pages company_logo

# you can use write simple tables
pdf.pages[0].write_table headers: ['first name', 'surname'], table_data: [['John', 'Doe'], ['Mr.', 'Smith']]

pdf.save "content_with_logo.pdf"

これは複雑な操作を目的としたものではありませんが、ほとんどの PDF オーサリング ライブラリを補完し、最初からすべてを記述する代わりに PDF テンプレートを使用できるようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top